首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    TensorFlow从0到1 - 12 - TensorFlow构建3层NN玩转MNIST

    TensorFlow必知必会 输入层张量构建 在上一篇用Python实现NN的输入层时,我们构建了一个784 x 1的矩阵作为第一层神经元的输出x,网络每次只处理一幅图像。...第二层神经元权重矩阵为一个30 x 784的矩阵W2,两者相乘W2·x,权重矩阵在前,前一层输出在后。...第二层神经元权重矩阵为一个784 x 30的矩阵W2,两者相乘x·W2,前一层输出在前,权重矩阵在后。 ? tensor 这是构建NN输入层张量时,TF与之前的Python方式上的差异。...虽然强大,但是从工程角度看它不够“简单”。...) np.argmax(a, 0) np.argmax(a, 1) 输出: [1 1 1] [1 1 1] [2 2] 5 [1 1 1] [2 2] 输出结果返回的是最大值的下标(从0开始)。

    1K50

    TensorFlow从0到1丨第2篇:TensorFlow核心编程

    [2, 1, 3]。...计算图 TensorFlow核心编程,通常是由两大阶段组成: 1 构建计算图 2 运行计算图 计算图,The Computational Graph,是由计算节点(node)构成的图。...节点,node,代表一种运算操作,输入≥0个张量,输出1个张量,下图右侧是一个加法节点,接受两个输入: ? 图2.计算图 TensorFlow提供了很多的API。...、构建计算图和运行计算图; node1和node2是常量节点,常量节点:没有输入,输出是事先存储在其内部的值; node3是一个加法操作,2个输入分别是node1和node2的输出,输出是1个相加后的结果...图3.overhead 每进行一次矩阵操作,python层都要获得计算结果,所以每行矩阵操作代码都造成一次C语言和Python之间的交互。numpy不仅要计算,还得“折返跑”。

    1.1K40

    TensorFlow从1到2 - 5 - 非专家莫入!TensorFlow实现CNN

    上一篇4 深入拆解CNN架构准备好了CNN的理论基础,本篇从代码层面,来看看TensorFlow如何搞定CNN,使识别精度达到99%以上。 ? 分析代码的方式 再次说明下分析代码的方式。...; 有关TensorFlow计算图(Graph)基本构建单元Node的概念,请回顾《TensorFlow从0到1 - 2 - TensorFlow核心编程》。...TensorFlow官方《Deep MNIST for Experts》中构建的CNN与LeNet-5的深度规模相当,具有5个隐藏层,但是卷积层滤波器的数量可多了不少: 输入层placeholder;...reshape; 隐藏层1:conv1卷积层,32个滤波器; 隐藏层2:pool1池化层; 隐藏层3:conv2卷积层,64个滤波器; 隐藏层4:pool2池化层; 隐藏层5:fc1全连接层; dropout...1(灰度图为单通道); h_pool2_flat = tf.reshape(h_pool2, [-1, 7 * 7 * 64]):在将卷积网络的输出数据,输入全连接层时,需要再把数据拉平回一个2阶Tensor

    2.5K90

    TensorFlow从1到2 - 2 - 消失的梯度

    如下图所示,从左到右,从上到下,依次是第1个到第4个隐藏层偏置bl上的梯度求模的值,曲线显示越靠前的层偏置向量b的模越小,所用代码tf_2-2_one_path.py。 ?...1.输出区间不以0为中心 Sigmoid的输出范围为(0, 1),总是正数,不以0为中心。由此可推断,一个由S型神经元构成的网络中,第一个隐藏层之后层的输入永远为正值。...从图上看,当神经元加权和|z| > 2时,Sigmoid曲线趋于平缓,此时σ'(z) → 0,神经元趋于饱和,权重和偏置更新幅度非常小,学习几乎停滞。...隐层数量 每隐层神经元数 迭代次数 识别精度 代码 1 隐层x1 100 30 97.57% tf_2-2_1_hidden_layers_relu.py 2 隐层x2 100,100 30 97.92%...如果单靠追加ReLU隐藏层就能构建深度网络,也就没卷积神经网络什么事了。 尽管从理论上讲,深度网络具备极强的分层概念表示能力,但是这并不保证学习过程总能通向成功。

    1.2K60

    TensorFlow从1到2(九)迁移学习

    数据集的保存路径为:“~/tensorflow_datasets/”,这个是tensorflow_datasets默认的。...数据集中是随机尺寸的图片,程序第一步会将图片统一到224x224的尺寸,这个是预置的MobileNet V2模型所决定的。 我们从样本中取头两个图片显示在屏幕上,并且使用模型预测图片内容。...最后是一个1个节点的输出层,因为我们需要的结果只有两类。 到了迁移学习的重点了,我们的基础模型的各项参数变量,我们并不想改变,因为这样才能保留原来大规模训练的优势,从而保留原来的经验。...在MobileNet V2模型中,一共有155层卷积或者神经网络。这个值可以使用len(model.layers)来查看。我们仍然锁定前面的100层,把后面的网络层打开,允许训练修改其参数。...从绘图结果看,优化的效果还是很明显的: 两张图,中间都有一条绿线分隔开优化前和优化后的训练数据。

    1.8K10

    TensorFlow从1到2 - 1 - 深度神经网络

    上一主题《TensorFlow从0到1》介绍人工神经网络的基本概念与其TensorFlow实现,主要基于浅层网络架构,即只包含一个隐藏层的全连接(FC,Full Connected)网络。...新主题《TensorFlow从1到2》将探索近5年来取得巨大成功的深度神经网络(Deep Neural Networks,DNN),它已成为机器学习中一个独立的子领域——深度学习(Deep Learning...以MNIST识别为例,使用在上一主题中构建好的全连接网络进行训练,测试结果如下表所示: 隐层数量 每隐层神经元数 迭代次数 识别精度 代码 1 隐层x1 100 30 95.25% tf_2-1_1_...hidden_layers.py 2 隐层x2 100 30 95.87% tf_2-1_2_hidden_layers.py 3 隐层x3 100 30 96.3% tf_2-1_3_hidden_layers.py...4 隐层x4 100 60 96.08% tf_2-1_4_hidden_layers.py 随着隐藏层数量的增加,识别精度增长并不显著,当隐藏层数量增加到4层时,收敛不仅需要更多的迭代次数,识别精度反而开始下降了

    928110

    TensorFlow从1到2(十三)图片风格迁移

    风格迁移 《从锅炉工到AI专家(8)》中我们介绍了一个“图片风格迁移”的例子。因为所引用的作品中使用了TensorFlow 1.x的代码,算法也相对复杂,所以文中没有仔细介绍风格迁移的原理。...当然,主要原因还是TensorFlow 2.0内置的tf.linalg.einsum方法强大好用。 在特征层的定义上,照片内容的描述使用vgg-19网络的第5部分的第2层卷积输出结果。...艺术图片风格特征的描述使用了5个层,分别是vgg-19网络的第1至第5部分第1个网络层的输出结果。...在程序中,可以这样描述: # 定义最能代表内容特征的网络层 content_layers = ['block5_conv2'] # 定义最能代表风格特征的网络层 style_layers = ['block1...content_layers = ['block5_conv2'] # 定义最能代表风格特征的网络层 style_layers = ['block1_conv1',

    2K42

    TensorFlow从0到1 | 第十二章:TensorFlow构建3层NN玩转MNIST

    TensorFlow必知必会 输入层张量构建 在上一篇用Python实现NN的输入层时,我们构建了一个784 x 1的矩阵作为第一层神经元的输出x,网络每次只处理一幅图像。...第二层神经元权重矩阵为一个30 x 784的矩阵W2,两者相乘W2·x,权重矩阵在前,前一层输出在后。...第二层神经元权重矩阵为一个784 x 30的矩阵W2,两者相乘x·W2,前一层输出在前,权重矩阵在后。 ? tensor 这是构建NN输入层张量时,TF与之前的Python方式上的差异。...) np.argmax(a, 0)np.argmax(a, 1) 输出: [1 1 1] [1 1 1] [2 2] 5 [1 1 1][2 2] 输出结果返回的是最大值的下标(从0开始)。...1 追加一个有30个神经元隐藏层,使用S型函数作为激活函数: W_2 = tf.get_variable('W_2', [784, 30], initializer=tf.random_normal_

    920130

    TensorFlow从1到2 | 第五章 非专家莫入!TensorFlow实现CNN

    上一篇TensorFlow从1到2 | 第四章: 拆解CNN架构 准备好了CNN的理论基础,本篇从代码层面,来看看TensorFlow如何搞定CNN,使识别精度达到99%以上。 ?...计算图(Graph)基本构建单元Node的概念,请回顾《TensorFlow从0到1 - 2 - TensorFlow核心编程》。...-5的深度规模相当,具有5个隐藏层,但是卷积层滤波器的数量可多了不少: 输入层placeholder; reshape; 隐藏层1:conv1卷积层,32个滤波器; 隐藏层2:pool1池化层; 隐藏层...3:conv2卷积层,64个滤波器; 隐藏层4:pool2池化层; 隐藏层5:fc1全连接层; dropout; fc2输出层; 计算下网络中权重的数量: 5x5x1x32 + 5x5x32x64 +...([5, 5, 1, 32]):第一卷积层滤波器,width和height位为卷积核的宽高,channels位代表滤波器通道数(匹配输入),最后一位F-amount位代表滤波器的数量为32个(官方文档从输出数据的角度定义其为

    1K80

    TensorFlow从1到2(二)续讲从锅炉工到AI专家

    在TensorFlow 1.x中,是使用程序input_data.py来下载和管理MNIST的样本数据集。...神经网络模型的构建在TensorFlow 1.0中是最繁琐的工作。我们曾经为了讲解vgg-19神经网络的使用,首先编写了一个复杂的辅助类,用于从字符串数组的遍历中自动构建复杂的神经网络模型。...]) #使用relu算法的激活函数,后面的公式跟前一个例子相同 h1 = tf.nn.relu(tf.matmul(x, W1) + b1) #定义第二层(隐藏层)网络,1024输入,512输出 W2...= weight_variable([1024, 512]) b2 = bias_variable([512]) h2 = tf.nn.relu(tf.matmul(h1, W2) + b2) #定义第三层...1.x版本MNIST代码中的工作: 使用了一个三层的神经网络,每一层都使用重复性的代码构建 每一层的代码中,要精心计算输入和输出数据的格式、维度,使得每一层同上、下两层完全吻合 精心设计损失函数(代价函数

    54300

    TensorFlow从1到2 | 第四章: 拆解CNN架构

    上一篇 《TensorFlow从1到2 | 第三章: 深度学习革命的开端:卷积神经网络》 快速回顾了CNN的前世今生。 本篇将拆开CNN架构,一探究竟。...从0到1),而其余的5层中,只有卷积层和降采样层两种类型,交替重复出现。...接下来看卷积层的第一行第二个神经元,5x5的“小视窗”从之前的位置,整体向右滑动了1个像素(跨距),形成了它的感受野,见下图。...+ 2x2 - 5) / 1 + 1 = 32 补0操作如下所示: 归纳当前构建网络用到的超参数: 输入层的尺寸,记为N; 小视窗尺寸,记为F; 跨距,stride; 补0圈数,记为P; 共享权重和偏置...3者的关归纳如下,务必牢记: 输入的通道数 == 滤波器的通道数; 滤波器的个数 == 输出的通道数; 这个关系可以用另一种视图辅助记忆,见下: 滤波器的层次 上一篇《TensorFlow从1到2 |

    79570

    TensorFlow从1到2(八)过拟合和欠拟合的优化

    现在有了TensorFLow 2.0 / Keras的支持,可以非常容易的构建模型。我们可以方便的人工模拟过拟合的情形,实际来操作监控、调整模型,从而显著改善模型指标。...增加权重的规范化 通常有两种方法,称为L1规范化和L2规范化。前者为代价值增加一定比例的权重值的绝对值。后者增加一定比例权重值的平方值。...具体的实现来源于公式,有兴趣的可以参考一下这篇文章《L1 and L2 Regularization》。...这个模型的逻辑结构同baseline的模型完全一致,只是在前两层中增加了L2规范化的设置参数。...其机理非常简单,就是在一层网络中,“丢弃”一定比例的输出(设置为数值0)给下一层。丢弃的比例通常设置为0.2至0.5。这个过程只在训练过程中有效,一般会在预测过程中关闭这个机制。

    1.3K20

    TensorFlow从1到2 | 第一章 消失的梯度

    上一主题 《TensorFlow从0到1》介绍了人工神经网络的基本概念与其TensorFlow实现,主要基于浅层网络架构,即只包含一个隐藏层的全连接(FC,Full Connected)网络。...新主题 《TensorFlow从1到2》 将探索近5年来取得巨大成功的深度神经网络(Deep Neural Networks),它已成为机器学习中一个独立的子领域——深度学习(Deep Learning...hidden_layers.py 2 隐层x2 100 30 95.87% tf_2-1_2_hidden_layers.py 3 隐层x3 100 30 96.3% tf_2-1_3_hidden_layers.py...隐层数量 每隐层神经元数 迭代次数 识别精度 代码 1 隐层x1 100 30 97.62% tf_2-1_1_hidden_layers_relu.py 2 隐层x2 100 30 97.72% tf..._2-1_2_hidden_layers_relu.py 3 隐层x3 100 30 97.79% tf_2-1_3_hidden_layers_relu.py 4 隐层x4 100 60 97.79%

    92850

    TensorFlow从0到1 - 16 - L2正则化对抗“过拟合”

    前面的14 交叉熵损失函数——防止学习缓慢和15 重新思考神经网络初始化从学习缓慢问题入手,尝试改进神经网络的学习。...它在12 TensorFlow构建3层NN玩转MNIST代码的基础上,使用了交叉熵损失,以及1/sqrt(nin)权重初始化: 1个隐藏层,包含30个神经元; 学习率:3.0; 迭代数:30次; mini...TensorFlow实现L2正则化 TensorFlow的最优化方法tf.train.GradientDescentOptimizer包办了梯度下降、反向传播,所以基于TensorFlow实现L2正则化...none时默认值为tf.GraphKeys.WEIGHTS; 最后将L2正则化reg_term项追加到损失函数表达式; 向原有损失函数追加L2正则化项,模型和训练设置略作调整: 1个隐藏层,包含100个神经元...所以在实现L2正则化时增加了隐藏层的神经元数量(从30到100)来抵消识别精度的下降。 ?

    1.4K90
    领券