1.tf.concat tf.concat的作用主要是将向量按指定维连起来,其余维度不变:而1.0版本以后,函数的用法变成: t1 = [[1, 2, 3], [4, 5, 6]] t2 = [[7, 8, 9], [10, 11, 12]] #按照第0维连接 tf.concat( [t1, t2],0) ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]] #按照第1维连接 tf.concat([t1, t2],1) ==> [[1, 2,…
『cs231n』通过代码理解gan网络&tensorflow共享变量机制_上 上篇是一个尝试生成minist手写体数据的简单GAN网络,之前有介绍过,图片维度是28*28*1,生成器的上采样使用的是tf.image.resize_image(),不太正规,不过其他部分很标准,值得参考学习. 辨别器: n,28,28,1    :卷积 + 激活 + 池化 n,14,14,32  :卷积 + 激活 + 池化 n,7,7,64     :reshape n,7*7*64    :全连接 + 激活 n,…
tf.shape(a)和a.get_shape()比较 相同点:都可以得到tensor a的尺寸 不同点:tf.shape()中a 数据的类型可以是tensor, list, array a.get_shape()中a的数据类型只能是tensor,且返回的是一个元组(tuple) import tensorflow as tf import numpy as np x=tf.constant([[1,2,3],[4,5,6]] y=[[1,2,3],[4,5,6]] z=np.arange(24…
TensorFlow:官方文档 TensorFlow:项目地址 本篇列出文章对于全零新手不太合适,可以尝试TensorFlow入门系列博客,搭配其他资料进行学习. Keras使用tf.Session训练方法教程 一.API介绍 基础操作列表 『TensorFlow』0.x_&_1.x版本框架改动汇总 『TensorFlow』函数查询列表_数值计算 『TensorFlow』函数查询列表_张量属性调整 『TensorFlow』简单的数学计算 『TensorFlow』变量初始化 常用基础操作 『Ten…
『TensorFlow』以GAN为例的神经网络类范式 『cs231n』通过代码理解gan网络&tensorflow共享变量机制_上 『TensorFlow』通过代码理解gan网络_中 一.计算图效果以及实际代码实现 计算图效果 实际模型实现 相关介绍移步我的github项目. 二.生成器与判别器设计 生成器 相关参量, 噪声向量z维度:100 标签向量y维度:10(如果有的话) 生成器features控制参量gf标量值:64 生成器features控制参量gfc标量值:1024 无标签训练, 1…
Fork版本项目地址:SSD 一.TFR数据读取 创建slim.dataset.Dataset对象 在train_ssd_network.py获取数据操作如下,首先需要slim.dataset.Dataset对象 # Select the dataset. # 'imagenet', 'train', tfr文件存储位置 # TFR文件命名格式:'voc_2012_%s_*.tfrecord',%s使用train或者test dataset = dataset_factory.get_datas…
一.论文介绍 读论文系列:Object Detection ECCV2016 SSD 一句话概括:SSD就是关于类别的多尺度RPN网络 基本思路: 基础网络后接多层feature map 多层feature map分别对应不同尺度的固定anchor 回归所有anchor对应的class和bounding box 网络结构简介 输入:300x300 经过VGG-16(只到conv4_3这一层) 经过几层卷积,得到多层尺寸逐渐减小的feature map 每层feature map分别做3x3卷积,…
首更: 由于TensorFlow的奇怪形式,所以载入保存的是sess,把会话中当前激活的变量保存下来,所以必须保证(其他网络也要求这个)保存网络和载入网络的结构一致,且变量名称必须一致,这是caffe...好吧,caffe也没有这种python风格的设定... 废话少说,导入包: import numpy as np import tensorflow as tf 保存会话: W = tf.Variable([[1,2,3],[4,5,6]],dtype=tf.float32) b = tf.V…
本节中的代码大量使用『TensorFlow』分布式训练_其一_逻辑梳理中介绍的概念,是成熟的多机分布式训练样例 一.基本概念 Cluster.Job.task概念:三者可以简单的看成是层次关系,task可以看成每台机器上的一个进程,多个task组成job:job又有:ps.worker两种,分别用于参数服务.计算服务,组成cluster. 同步更新 各个用于并行计算的电脑,计算完各自的batch 后,求取梯度值,把梯度值统一送到ps服务机器中,由ps服务机器求取梯度平均值,更新ps服务器上的参数…
『TensorFlow』降噪自编码器设计  之前学习过的代码,又敲了一遍,新的收获也还是有的,因为这次注释写的比较详尽,所以再次记录一下,具体的相关知识查阅之前写的文章即可(见上面链接). # Author : Hellcat # Time : 2017/12/6 import numpy as np import sklearn.preprocessing as prep import tensorflow as tf from tensorflow.examples.tutorials.mn…
『PyTorch』第六弹_最小二乘法对比PyTorch和TensorFlow TensorFlow 控制流程操作 TensorFlow 提供了几个操作和类,您可以使用它们来控制操作的执行并向图中添加条件依赖关系. tf.identity 『TensorFlow』流程控制之tf.identity tf.tuple tf.group 创建一个操作,该操作可以对 TensorFlow 的多个操作进行分组,输入需要进行分组的零个或多个张量. tf.no_op tf.count_up_to tf.cond…
tf.trainable_variables可以得到整个模型中所有trainable=True的Variable,也是自由处理梯度的基础 基础梯度操作方法: tf.gradients 用来计算导数.该函数的定义如下所示 def gradients(ys, xs, grad_ys=None, name="gradients", colocate_gradients_with_ops=False, gate_gradients=False, aggregation_method=None)…
『TensorFlow』第七弹_保存&载入会话_霸王回马 一.TensorFlow常规模型加载方法 保存模型 tf.train.Saver()类,.save(sess, ckpt文件目录)方法 参数名称 功能说明 默认值 var_list Saver中存储变量集合 全局变量集合 reshape 加载时是否恢复变量形状 True sharded 是否将变量轮循放在所有设备上 True max_to_keep 保留最近检查点个数 5 restore_sequentially 是否按顺序恢复变量,模型…
VGGNet网络介绍 VGG系列结构图, 『cs231n』卷积神经网络工程实践技巧_下 1,全部使用3*3的卷积核和2*2的池化核,通过不断加深网络结构来提升性能. 所有卷积层都是同样大小的filter:尺寸3x3,卷积步长Stirde = 1,填充Padding = 1 为什么这么搞? A.3x3是最小的能够捕获左.右.上.下和中心概念的尺寸: B.两个3x3的卷积层连在一起可视为5x5的filter,三个连在一起可视为一个7x7的 这是卷积的性质,受过#信号系统#这门课摧残的同学应该记忆犹新…
argparse很强大,但是我们未必需要使用这么繁杂的东西,TensorFlow自己封装了一个简化版本的解析方式,实际上是对argparse的封装 脚本化调用tensorflow的标准范式: import pprint import tensorflow as tf flags = tf.app.flags # 脚本参数名,值,描述 # 脚本参数有四种取值:整数,浮点数,字符串,布尔类型,也是相比argv模块高级 flags.DEFINE_integer("epoch", 25, &q…
一.TFRecord文件书写效率对比(单线程和多线程对比) 1.准备工作 # Author : Hellcat # Time : 18-1-15 ''' import os os.environ["CUDA_VISIBLE_DEVICES"]="-1" ''' import os import glob import numpy as np import tensorflow as tf import matplotlib.pyplot as plt np.set_…
滑动平均会为目标变量维护一个影子变量,影子变量不影响原变量的更新维护,但是在测试或者实际预测过程中(非训练时),使用影子变量代替原变量. 1.滑动平均求解对象初始化 ema = tf.train.ExponentialMovingAverage(decay,num_updates) 参数decay `shadow_variable = decay * shadow_variable + (1 - decay) * variable` 参数num_updates `min(decay, (1 +…
建议比对『MXNet』第七弹_多GPU并行程序设计 一.tensorflow GPU设置 GPU指定占用 gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.7) sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) 上面分配给tensorflow的GPU显存大小为:GPU实际显存*0.7. GPU模式禁用 import os os.environ…
『PyTorch × TensorFlow』第十七弹_ResNet快速实现 要点 神经网络逐层加深有Degradiation问题,准确率先上升到饱和,再加深会下降,这不是过拟合,是测试集和训练集同时下降的 提出了残差结构,这个结构解决了深层网络训练误差反而提升的情况,使得网络理论上可以无限深 bottleneck网络结构,注意Channel维度变化: ,宛如一个中间细两端粗的瓶颈,所以称为“bottleneck”.这种结构相比VGG,早已经被证明是非常效的,能够更好的提取图像特征. 残差结构 截…
『教程』Batch Normalization 层介绍 基础知识 下面有莫凡的对于批处理的解释: fc_mean,fc_var = tf.nn.moments( Wx_plus_b, axes=[0], # 想要 normalize 的维度, [0] 代表 batch 维度 # 如果是图像数据, 可以传入 [0, 1, 2], 相当于求[batch, height, width] 的均值/方差, 注意不要加入 channel 维度 ) scale = tf.Variable(tf.ones([o…
线程控制器类 线程控制器原理: 监视tensorflow所有后台线程,有异常出现(主要是越界,资源循环完了)时,其should_stop方法就会返回True,而它的request_stop方法则用于要求各个线程安全退出.需要使用local变量,初始化时注意. coord = tf.train.Coordinator() # 线程控制器 threads = tf.train.start_queue_runners(coord=coord) # 启动队列 try: while not coord.s…
数据类型转换Casting 操作 描述 tf.string_to_number(string_tensor, out_type=None, name=None) 字符串转为数字 tf.to_double(x, name=’ToDouble’) 转为64位浮点类型–float64 tf.to_float(x, name=’ToFloat’) 转为32位浮点类型–float32 tf.to_int32(x, name=’ToInt32’) 转为32位整型–int32 tf.to_int64(x, n…
完整项目见:Github 完整项目中最终使用了ResNet进行分类,而卷积版本较本篇中结构为了提升训练效果也略有改动 本节主要介绍进阶的卷积神经网络设计相关,数据读入以及增强在下一节再与介绍 网络相关参数 输入24*24的图片 卷积->relu激活->最大池化->标准化 卷积->relu激活->标准化->最大池化 全连接:reshape尺寸->384 全连接:192->10 SoftMax 网络实现 git clone https://github.com/…
Fork版本项目地址:SSD 参考自集智专栏 一.SSD基础 在分类器基础之上想要识别物体,实质就是 用分类器扫描整张图像,定位特征位置 .这里的关键就是用什么算法扫描,比如可以将图片分成若干网格,用分类器一个格子.一个格子扫描,这种方法有几个问题: 问题1 : 目标正好处在两个网格交界处,就会造成分类器的结果在两边都不足够显著,造成漏报(True Negative). 问题2 : 目标过大或过小,导致网格中结果不足够显著,造成漏报. 针对第一点,可以采用相互重叠的网格.比如一个网格大小是 32…
数据读取部分实现 文中采用了tensorflow的从文件直接读取数据的方式,逻辑流程如下, 实现如下, # Author : Hellcat # Time : 2017/12/9 import os import tensorflow as tf IMAGE_SIZE = 24 NUM_CLASSES = 10 NUM_EXAMPLES_PER_EPOCH_FOR_TRAIN = 50000 NUM_EXAMPLES_PER_EPOCH_FOR_EVAL = 10000 def read_cif…
一.误差值 度量两个张量或者一个张量和零之间的损失误差,这个可用于在一个回归任务或者用于正则的目的(权重衰减). l2_loss tf.nn.l2_loss(t, name=None) 解释:这个函数的作用是利用 L2 范数来计算张量的误差值,但是没有开方并且只取 L2 范数的值的一半,具体如下: output = sum(t ** 2) / 2 输入参数: t: 一个Tensor.数据类型必须是一下之一:float32,float64,int64,int32,uint8,int16,int8,…
部分代码单独测试: 这里实践了图像大小调整的代码,值得注意的是格式问题: 输入输出图像时一定要使用uint8编码, 但是数据处理过程中TF会自动把编码方式调整为float32,所以输入时没问题,输出时要手动转换回来!使用numpy.asarray(dtype)或者tf.image.convert_image_dtype(dtype)都行 都行 1 import numpy as np import tensorflow as tf import matplotlib.pyplot as plt…
Step1: 目标: 使用线性模拟器模拟指定的直线:y = 0.1*x + 0.3 代码: import tensorflow as tf import numpy as np import matplotlib.pyplot as plt def show_data(x,y,w,b): ''' 绘图函数 :param x: 横坐标散点 :param y: 纵坐标散点 :param w: 权重 :param b: 偏移量 :return: 无 ''' plt.figure() plt.scatt…
tf.Graph 操作 描述 class tf.Graph tensorflow中的计算以图数据流的方式表示一个图包含一系列表示计算单元的操作对象以及在图中流动的数据单元以tensor对象表现 tf.Graph.__init__() 建立一个空图 tf.Graph.as_default() 一个将某图设置为默认图,并返回一个上下文管理器如果不显式添加一个默认图,系统会自动设置一个全局的默认图.所设置的默认图,在模块范围内所定义的节点都将默认加入默认图中 tf.Graph.as_graph_def…
TF数据读取队列机制详解 一.TFR文件多线程队列读写操作 TFRecod文件写入操作 import tensorflow as tf def _int64_feature(value): # value必须是可迭代对象 # 非int的数据使用bytes取代int64即可 return tf.train.Feature(int64_list=tf.train.Int64List(value=[value])) num_shards = 2 instance_perPshard = 2 for i…