TensorFlow 学习
记录 TensorFlow 的学习过程
南淮北安
好好学习
展开
-
一篇文章带你搞定 TensorFlow 中的 tf.slice 函数
函数的功能:返回对应的张量的切片,从列表、数组、张量等对象中抽取一部分数据函数的定义:tf.slice(inputs, begin, size, name)inputs:张量begin:切片的起始位置size:切片的大小该函数就是在张量 inputs 中,从 begin 定义的位置开始,获取 size 大小的子集。示例:import tensorflow as tfx = [[1, 2, 3, 4], [5, 6, 7, 8]]with tf.Session() as sess:原创 2020-11-18 17:17:18 · 689 阅读 · 4 评论 -
tensorboard 在浏览器的显示问题
注意:要在命令行内进入到 logs 目录下,logs 目录里存放的是生成的日志执行命令:tensorboard --logdir logs --host=127.0.0.1原创 2020-04-04 14:46:53 · 668 阅读 · 0 评论 -
TensorFlow:可视化
在网络训练的过程中,通过Web 端监控网络的训练进度,可视化网络的训练结果对于提高开发效率是非常重要的。TensorFlow 提供了一个专门的可视化工具,叫做TensorBoard,他通过TensorFlow 将监控数据写入到文件系统,并利用Web 后端监控对应的文件目录,从而可以允许用户从远程查看网络的监控数据。TensorBoard 的使用需要训练部分和浏览器交互工作。一、模型端在模...原创 2020-01-12 17:05:53 · 1169 阅读 · 0 评论 -
TensorFlow:网络模型
对于常用的网络模型,如ResNet,VGG 等,不需要手动创建网络,可以直接从keras.applications 子模块下一行代码即可创建并使用这些经典模型,同时还可以通过设置 weights 参数加载预训练的网络参数,非常方便。以 ResNet50 迁移学习为例,一般将ResNet50 去掉最后一层后的网络作为新任务的特征提取子网络,即利用ImageNet 上面预训练的特征提取方法迁移到...原创 2020-01-12 16:50:49 · 645 阅读 · 0 评论 -
TensorFlow:自定义类
在创建自定义网络层类时,需要继承自layers.Layer 基类;创建自定义的网络类,需要继承自 keras.Model 基类,这样产生的自定义类才能够方便的利用Layer/Model 基类提供的参数管理功能,同时也能够与其他的标准网络层类交互使用。文章目录一、自定义网络层二、自定义网络一、自定义网络层对于自定义的网络层,需要实现初始化 __inti__方法和前向传播逻辑call方法假设我...原创 2020-01-12 16:06:31 · 1993 阅读 · 1 评论 -
Tensorflow:模型保存与加载
模型训练完成后,需要将模型保存到文件系统上,从而方便后续的模型测试与部署工作。实际上,在训练时间隔性地保存模型状态也是非常好的习惯,这一点对于训练大规模的网络尤其重要,一般大规模的网络需要训练数天乃至数周的时长,一旦训练过程被中断或者发生宕机等意外,之前训练的进度将全部丢失。如果能够间断的保存模型状态到文件系统,即使发生宕机等意外,也可以从最近一次的网络状态文件中恢复,从而避免浪费大量的训练时间。...原创 2020-01-03 21:44:20 · 1315 阅读 · 1 评论 -
TensorFlow:模型装配、训练与测试
在训练网络时,一般的流程是通过前向计算获得网络的输出值,再通过损失函数计算网络误差,然后通过自动求导工具计算梯度并更新,同时间隔性地测试网络的性能。对于这种常用的训练逻辑,可以直接通过Keras 提供的模型装配与训练高层接口实现,简洁清晰。文章目录一、模型装配二、模型匹配三、模型测试一、模型装配在 Keras 中,有2 个比较特殊的类:keras.Model 和keras.layers.La...原创 2020-01-03 21:29:30 · 1011 阅读 · 0 评论 -
TensorFlow:Keras 常见功能模块
在TensorFlow 中,也实现了一套Keras 协议,即tf.keras,但只能基于TensorFlow 后端计算,并对TensorFlow 的支持更好。对于使用TensorFlow 的开发者来说,tf.keras 可以理解为一个普通的子模块,与其他子模块,如tf.math,tf.data 等并没有什么差别。文章目录一、常见网络层类二、网络容器一、常见网络层类对于常见的神经网络层,可以使...原创 2020-01-03 11:00:51 · 1079 阅读 · 0 评论 -
TensorFlow:误差计算
常见的误差计算函数有均方差、交叉熵、KL 散度、Hinge Loss 函数等,其中均方差函数和交叉熵函数在深度学习中比较常见,均方差主要用于回归问题,交叉熵主要用于分类问题文章目录一、均方差二、交叉熵一、均方差均方差误差(Mean Squared Error, MSE)函数把输出向量和真实向量映射到笛卡尔坐标系的两个点上,通过计算这两个点之间的欧式距离(准确地说是欧式距离的平方)来衡量两个...原创 2019-12-31 20:08:31 · 1620 阅读 · 0 评论 -
TensorFlow:输出层设计
我们来特别地讨论网络的最后一层的设计,它除了和所有的隐藏层一样,完成维度变换、特征提取的功能,还作为输出层使用,需要根据具体的任务场景来决定是否使用激活函数,以及使用什么类型的激活函数。我们将根据输出值的区间范围来分类讨论。常见的几种输出类型包括:文章目录一、普通实数空间二、[0,1] 区间三、[0,1] 区间,和为 1四、[-1,1]一、普通实数空间这一类问题比较普遍,像正弦函数曲...原创 2019-12-30 17:23:19 · 1429 阅读 · 0 评论 -
TensorFlow:神经网络
文章目录一、张量方式实现二、层方式实现一、张量方式实现对于多层神经网络,以图示网络结构为例,分别定义各层的权值矩阵W 和偏置向量b 如下:# 隐藏层1 张量w1 = tf.Variable(tf.random.truncated_normal([784, 256], stddev=0.1))b1 = tf.Variable(tf.zeros([256]))# 隐藏层2 张量w2 =...原创 2019-12-30 16:34:28 · 854 阅读 · 1 评论 -
TensorFlow:全连接层的实现
文章目录一、张量方式实现二、层方式实现一、张量方式实现在 TensorFlow 中,要实现全连接层,只需要定义好权值张量W 和偏置张量b,并利用TensorFlow 提供的批量矩阵相乘函数tf.matmul()即可完成网络层的计算。如下代码创建输入X 矩阵为???? = 2个样本,每个样本的输入特征长度为???????????? = 784,输出节点数为???????????????? =256,故定义权值矩阵W 的shape 为[78...原创 2019-12-30 16:13:52 · 8210 阅读 · 0 评论 -
TensorFlow:随机打散、批训练、预处理、循环训练
文章目录一、随机打散二、批训练三、预处理四、循环训练一、随机打散通过 Dataset.shuffle(buffer_size)工具可以设置Dataset 对象随机打散数据之间的顺序,防止每次训练时数据按固定顺序产生,从而使得模型尝试“记忆”住标签信息:train_db = train_db.shuffle(10000)其中buffer_size 指定缓冲池的大小,一般设置为一个较大的参数...原创 2019-12-29 09:41:49 · 3154 阅读 · 0 评论 -
TensorFlow:经典数据集加载
在 TensorFlow 中,keras.datasets 模块提供了常用经典数据集的自动下载、管理、加载与转换功能,并且提供了tf.data.Dataset 数据集对象,方便实现多线程(Multi-thread),预处理(Preprocess),随机打散(Shuffle)和批训练(Train on batch)等常用数据集功能。常用的数据集:(1)Boston Housing 波士顿房价趋势...原创 2019-12-28 14:31:55 · 1414 阅读 · 0 评论 -
TensorFlow:高级操作
文章目录一、tf.gather二、tf.gather_nd三、tf.where四、scatter_nd五、meshgrid一、tf.gathertf.gather 可以实现根据索引号收集数据的目的。考虑班级成绩册的例子,共有4 个班级,每个班级35 个学生,8 门科目,保存成绩册的张量shape 为[4,35,8]。x = tf.random.uniform([4,35,8],maxval...原创 2019-12-28 10:07:09 · 722 阅读 · 0 评论 -
TensorFlow:数据限幅
在 TensorFlow 中,可以通过tf.maximum(x, a)实现数据的下限幅:???? ∈ [????, +∞);可以通过tf.minimum(x, a)实现数据的上限幅:???? ∈ (−∞, ????]更方便地,我们可以使用tf.clip_by_value 实现上下限幅:...原创 2019-12-27 22:01:57 · 426 阅读 · 0 评论 -
TensorFlow:填充与复制
文章目录一、填充二、复制一、填充对于图片数据的高和宽、序列信号的长度,维度长度可能各不相同。为了方便网络的并行计算,需要将不同长度的数据扩张为相同长度,之前我们介绍了通过复制的方式可以增加数据的长度,但是重复复制数据会破坏原有的数据结构,并不适合于此处。通常的做法是,在需要补充长度的信号开始或结束处填充足够数量的特定数值,如0,使得填充后的长度满足系统要求。那么这种操作就叫做填充(Pad...原创 2019-12-27 20:05:19 · 1261 阅读 · 0 评论 -
Tensorflow:张量比较
为了计算分类任务的准确率等指标,一般需要将预测结果和真实标签比较,统计比较结果中正确的数量来就是计算准确率。(1)模拟100 个样本的预测结果(2)将样本预测值转换为概率(3)选取预测值最大概率的索引号(4)设置100个真实标签用来与样本预测值进行比较通过tf.equal(a, b)(或tf.math.equal(a, b))函数可以比较这2个张量是否相等:out = tf.equ...原创 2019-12-27 14:55:52 · 2178 阅读 · 0 评论 -
TensorFlow:最大最小值、均值、和、softmax 及 argmax 的应用
文章目录一、最大最小值、均值、和二、softmax 和 argmax一、最大最小值、均值、和通过 tf.reduce_max, tf.reduce_min, tf.reduce_mean, tf.reduce_sum 可以求解张量在某个维度上的最大、最小、均值、和,也可以求全局最大、最小、均值、和信息。考虑 shape 为[4,10]的张量,其中第一个维度代表样本数量,第二个维度代表了当前样...原创 2019-12-27 14:29:16 · 8710 阅读 · 0 评论 -
Tensorflow:向量范数
向量范数(Vector norm)是表征向量“长度”的一种度量方法,在神经网络中,常用来表示张量的权值大小,梯度大小等。对于矩阵、张量,同样可以利用向量范数的计算公式,等价于将矩阵、张量打平成向量后计算。在 TensorFlow 中,可以通过tf.norm(x, ord)求解张量的L1, L2, ∞等范数,其中参数ord指定为1,2 时计算L1, L2 范数,指定为np.inf 时计算∞ ...原创 2019-12-27 10:06:45 · 3295 阅读 · 0 评论 -
TensorFlow:合并与分割
文章目录一、合并1. 拼接2. 堆叠二、分割一、合并合并是指将多个张量在某个维度上合并为一个张量。以某学校班级成绩册数据为例,设张量A 保存了某学校1-4 号班级的成绩册,每个班级35 个学生,共8 门科目,则张量A的shape 为:[4,35,8];同样的方式,张量B 保存了剩下的6 个班级的成绩册,shape 为[6,35,8]。通过合并2 个成绩册,便可得到学校所有班级的成绩册张量C,...原创 2019-12-27 09:55:47 · 821 阅读 · 0 评论 -
TensorFlow:数学运算
文章目录一、加减乘除二、乘方三、指数、对数四、矩阵相乘一、加减乘除加减乘除是最基本的数学运算,分别通过tf.add, tf.subtract, tf.multiply, tf.divide 函数实现,TensorFlow 已经重载了+ −∗/运算符,一般推荐直接使用运算符来完成加减乘除运算。整除和余除也是常见的运算之一,分别通过//和%运算符实现。我们来演示整除运算:二、乘方特...原创 2019-12-26 12:50:03 · 956 阅读 · 0 评论 -
TensorFlow:维度变换
基本的维度变换包含了改变视图 reshape,插入新维度 expand_dims,删除维 squeeze,交换维度 transpose,复制数据 tile 等。文章目录一、张量的存储和视图(View)概念二、Reshape 操作三、增删维度1. 增加维度2. 删除维度四、交换维度五、数据复制六、Broadcasting(自动扩展)一、张量的存储和视图(View)概念张量的视图就是我们理解张量...原创 2019-12-25 14:55:39 · 8069 阅读 · 0 评论 -
Tensorflow:索引和切片
通过索引与切片操作可以提取张量的部分数据,使用频率非常高。文章目录一、索引二、切片一、索引TensorFlow 中,支持基本的[????][????] …标准索引方式,也支持通过逗号分隔索引号的索引方式。考虑输入X 为4 张32x32 大小的彩色图片(为了方便演示,大部分张量都使用随即分布模拟产生,后文同),shape 为[4,32,32,3],首先创建张量:x = tf.random.norm...原创 2019-12-20 16:06:43 · 939 阅读 · 0 评论 -
TensorFlow:张量的典型应用
文章目录一、标量二、向量三、矩阵四、四维张量一、标量在 TensorFlow 中,标量最容易理解,它就是一个简单的数字,维度数为0,shape 为[]。标量的典型用途之一是误差值的表示、各种测量指标的表示,比如准确度(Accuracy,acc),精度(Precision)和召回率(Recall)等。以均方差误差函数为例,经过tf.keras.losses.mse(或tf.keras.l...原创 2019-12-20 15:47:14 · 1224 阅读 · 0 评论 -
TensorFlow:张量的相关属性和创建方式
文章目录一、创建张量1. 从Numpy,List 对象创建2. 创建全0,全1张量二、创建自定义数值张量三、创建已知分布的张量1. 创建正态分布2. 创建均匀分布四、创建序列一、创建张量1. 从Numpy,List 对象创建Numpy Array 数组和Python List 是Python 程序中间非常重要的数据载体容器,很多数据都是通过Python 语言将数据加载至Array 或者Li...原创 2019-12-20 15:24:25 · 842 阅读 · 0 评论 -
TensorFlow 基础
TensorFlow 中的基本数据类型,它包含了数值型、字符串型和布尔型。文章目录一、数值类型二、字符串类型三、布尔类型四、数值精度五、待优化张量一、数值类型标量标量(Scalar) 单个的实数,如1.2, 3.4 等,维度数(Dimension,也叫秩)为0,shape 为[]向量向量(Vector) n 个实数的有序集合,通过中括号包裹,如[1.2],[1.2, 3.4]...原创 2019-12-20 10:16:13 · 456 阅读 · 0 评论 -
Tensorflow:tf.layers.dense
表示全连接层tf.layers.dense( inputs, units, activation=None, use_bias=True, kernel_initializer=None, bias_initializer=tf.zeros_initializer(), kernel_regularizer=None, bias_r...原创 2019-11-17 16:16:44 · 519 阅读 · 0 评论 -
Tensorflow:tf.random_uniform() 和 tf.random_normal
文章目录一、tf.random_uniform()二、tf.random_normal一、tf.random_uniform()默认是在 0 到 1 之间产生随机数,也可以通过 minval 和 maxval 指定上下界tf.random_uniform((4, 4), minval=low,maxval=high,dtype=tf.float32)))返回6*6的矩阵,产生于 low ...原创 2019-11-17 10:06:05 · 3258 阅读 · 0 评论 -
TensorFlow 中 tf.cast() 的用法
tf.cast() 函数的作用是执行 tensorflow 中张量数据类型转换,比如读入的图片如果是int8类型的,一般在要在训练前把图像的数据格式转换为float32cast(x, dtype, name=None)第一个参数 x: 待转换的数据(张量)第二个参数 dtype: 目标数据类型第三个参数 name: 可选参数,定义操作的名称import tensorflow a...转载 2019-09-10 20:28:23 · 2092 阅读 · 0 评论 -
TensorFlow:tf.argmax() 和 tf.equal() 的使用
文章目录一、tf.argmax() 的使用二、 tf.equal() 的使用一、tf.argmax() 的使用简单的说,tf.argmax 就是返回最大的那个数值所在的下标tf.argmax(input, dimension, name=None)dimension=0 按列找 dimension=1 按行找 import tensorflow as tfimport numpy ...原创 2019-09-10 19:49:26 · 951 阅读 · 0 评论 -
Tensorflow 中可视化好助手 Tensorboard(一)
学会用Tensorflow自带的Tensorboard去可视化我们所构建的神经网络是一个很好的学习理解方式。用最直观的流程图告诉你,你的神经网络长什么样子,有助于你发现编程中出现的问题和疑问。文章目录一、动态显示结果图二、可视化所构建的神经网络一、动态显示结果图# 导入本次需要的模块import tensorflow as tfimport numpy as npimport mat...原创 2019-09-08 18:37:17 · 479 阅读 · 0 评论 -
matplotlib 绘图入门详解
matplotlib是受MATLAB的启发构建的。MATLAB是数据绘图领域广泛使用的语言和工具。MATLAB语言是面向过程的。利用函数的调用,MATLAB中可以轻松的利用一行命令来绘制直线,然后再用一系列的函数调整结果。matplotlib有一套完全仿照MATLAB的函数形式的绘图接口,在matplotlib.pyplot模块中。这套函数接口方便MATLAB用户过度到matplotlib包文...转载 2019-09-08 10:13:49 · 809 阅读 · 0 评论 -
用 Tensorflow 构建一个神经网络
本次构建的神经网络:神经网络结构说明:(1)输入层:300个含有一个特征的样本。(2)隐藏层:含有一个隐藏层,隐藏层中有10个神经元节点。神经元节点的激活函数是:ReLU。(3)输出层:一个神经元节点,没有激活函数实现代码:import tensorflow as tfimport numpy as np"""inputs:输入值in_size:输入的大小out_size...原创 2019-09-07 16:42:54 · 560 阅读 · 0 评论 -
Tensorflow 中 tf.train.GradientDescentOptimizer 优化器详解
tf.train.GradientDescentOptimizer(learning_rate, use_locking=False,name=’GradientDescent’)learning_rate: A Tensor or a floating point value. 要使用的学习率use_locking: 要是True的话,就对于更新操作(update operations.)...原创 2019-09-07 16:14:06 · 13513 阅读 · 8 评论 -
Numpy 中 np.vstack() 和 np.hstack() 简单解析
文章目录一、np.vstack()二、np.hstack()一、np.vstack()按垂直方向(行顺序)堆叠数组构成一个新的数组堆叠的数组需要具有相同的维度二、np.hstack()按水平方向(列顺序)堆叠数组构成一个新的数组堆叠的数组需要具有相同的维度...原创 2019-09-07 14:24:07 · 93632 阅读 · 5 评论 -
TensorFlow的reduce_sum()函数、tf.reduce_mean()和tf.reduce_max()
文章目录一、reduce_sum() 函数二、tf.reduce_mean()和tf.reduce_max()一、reduce_sum() 函数reduce_sum 应该理解为压缩求和,用于降维(是从维度上考虑的)tf.reduce_sum(input_tensor,axis=None,keepdims=None,name=None,reduction_indices=None,keep_...原创 2019-09-07 10:18:45 · 2218 阅读 · 0 评论 -
TensorFlow 中的 placeholder
placeholder 是 Tensorflow 中的占位符,暂时储存变量.Tensorflow 如果想要从外部传入data, 那就需要用到 tf.placeholder(), 然后以这种形式传输数据 sess.run(***, feed_dict={input: **}).import tensorflow as tf# TensorFlow 中需要定义 placeholder 的 ty...原创 2019-09-06 21:22:45 · 838 阅读 · 0 评论 -
TensorFlow中 Variable 变量的简单使用
在 TensorFlow 中,定义了某字符串变量,它才是 变量,这一点与 Python 不同语法:state = tf.Variable()import tensorflow as tfstate = tf.Variable(3,name='count')# 定义常量 oneone = tf.constant(1)# 定义加法步骤,但是这步并没有直接计算new_value = t...原创 2019-09-06 20:49:16 · 719 阅读 · 0 评论 -
Tensorflow 中 Session 会话控制
Session 是 TensorFlow 为了控制和输出文件的执行语句,运行 Session.run() 可以获得你想要的运算结果文章目录一、示例 1二、示例 2一、示例 1import tensorflow as tf# 建立一个一行两列的矩阵matrix1 = tf.constant([3,3]) # 建立一个两行一列的矩阵matrix2 = tf.constant([[2],...原创 2019-09-06 20:29:24 · 337 阅读 · 0 评论