免费网站建设哪个好?,宁波seo外包代运营,思茅网站建设,常州做网站的企业Tensorflow 第一节#xff1a;使用指南Tensorflow 安装神经网络一些基本概念隐藏层和输出层#xff1a;神经元的输出公式Tensorflow 全连接层 Dense 与 顺序模型 SequentialDense LayerSequential Model代码实现一个神经网络实现方式一#xff1a;手写神经网络* 实现方式二使用指南Tensorflow 安装神经网络一些基本概念隐藏层和输出层神经元的输出公式Tensorflow 全连接层 Dense 与 顺序模型 SequentialDense LayerSequential Model代码实现一个神经网络实现方式一手写神经网络* 实现方式二TensorflowTensorflow 安装
有关 Tensorflow/CUDA/cuDNN 安装见博客https://xu-hongduo.blog.csdn.net/article/details/129927665
神经网络 一些基本概念
上图中包含输入层、隐藏层、输出层其中输入层为 layer 0输入到网络中的内容为 x⃗\vec{x}x其中隐藏层有三层layer 1layer 2layer 3其中输出层为 layer 4输出内容为 a⃗[4]\vec{a}^{[4]}a[4]如果需要统计该神经网络有多少层则统计为神经网络层数隐藏层个数输出层个数314神经网络层数 隐藏层个数 输出层个数 3 1 4神经网络层数隐藏层个数输出层个数314
隐藏层和输出层
关于隐藏层 layer 1 隐藏层 layer 1 中包含四个神经元其中每个神经元的输入为x⃗\vec{x}x隐藏层 layer 1 的输出为 a⃗[1]\vec{a}^{[1]}a[1]一个包含四个元素的矩阵分别为 layer 1 中四个神经元输出的结果 关于隐藏层 layer 2 隐藏层 layer 2 中包含五个神经元其中每个神经元的输入为a⃗[1]\vec{a}^{[1]}a[1]隐藏层 layer 2 的输出为 a⃗[2]\vec{a}^{[2]}a[2]一个包含五个元素的矩阵分别为 layer 2 中五个神经元输出的结果 关于隐藏层 layer 3 隐藏层 layer 3 中包含三个神经元其中每个神经元的输入为a⃗[2]\vec{a}^{[2]}a[2]隐藏层 layer 3 的输出为 a⃗[3]\vec{a}^{[3]}a[3]一个包含三个元素的矩阵分别为 layer 3 中三个神经元输出的结果 关于输出层 layer 4 输出层 layer 4 中只有一个神经元需要注意的是输出层不限制神经元的个数而是根据具体情况进行分析从而规定神经元的数量。输出层的输入为一个包含三个元素的矩阵 a⃗[3]\vec{a}^{[3]}a[3]输出为一个值 a[4]a^{[4]}a[4]当 a[4]≥0.5a^{[4]}≥0.5a[4]≥0.5 时表示结果为真否则为假 神经元的输出公式
根据下图思考
输入层矩阵 x⃗\vec{x}x 是一个 ?∗??*??∗? 的矩阵隐藏层 layer 1 输出的 a⃗[1]\vec{a}^{[1]}a[1] 是一个 ?∗??*??∗? 的矩阵隐藏层 layer 1 的向量参数 w⃗\vec{w}w 是一个 ?∗??*??∗? 的矩阵 列举隐藏层 layer 1 的输出公式
layer 1 中包含四个神经元
a1[1]g(w⃗1[1]⋅x⃗b1[1])a_1^{[1]} g(\vec{w}^{[1]}_1 · \vec{x} b^{[1]}_1)a1[1]g(w1[1]⋅xb1[1])a2[1]g(w⃗2[1]⋅x⃗b2[1])a_2^{[1]} g(\vec{w}^{[1]}_2 · \vec{x} b^{[1]}_2)a2[1]g(w2[1]⋅xb2[1])a3[1]g(w⃗3[1]⋅x⃗b3[1])a_3^{[1]} g(\vec{w}^{[1]}_3 · \vec{x} b^{[1]}_3)a3[1]g(w3[1]⋅xb3[1])a4[1]g(w⃗4[1]⋅x⃗b4[1])a_4^{[1]} g(\vec{w}^{[1]}_4 · \vec{x} b^{[1]}_4)a4[1]g(w4[1]⋅xb4[1])
layer 1 的输出为一个二维数组 a⃗[1][[a1[1],a2[1],a3[1],a4[1]]]\vec{a}^{[1]} [[a_1^{[1]}, a_2^{[1]}, a_3^{[1]}, a_4^{[1]}]]a[1][[a1[1],a2[1],a3[1],a4[1]]]
根据上述内容回答上述的三个问题【1】【2】【3】 输入层 x⃗\vec{x}x 是一个 n∗mn*mn∗m 的矩阵其中 nnn 是训练样本的个数mmm 是样本的特征。样本的 mmm 个特征影响着隐藏层 layer 1 的向量参数矩阵形状。 隐藏层 layer 1 输出的 a⃗[1]\vec{a}^{[1]}a[1] 是一个 1∗41*41∗4 的矩阵内容为 layer 1 中四个神经元的结果 隐藏层 layer 1 的向量参数 w⃗\vec{w}w 是一个 m∗4m*4m∗4 的矩阵mmm 代表输入的特征根据这些输入的特征我们输出 444 个值组成的 a⃗[1]\vec{a}^{[1]}a[1] Tensorflow 全连接层 Dense 与 顺序模型 Sequential
下面内容我将围绕如何使用 tensorflow 代码实现上述的隐藏层以及诸多神经元
Dense Layer
首先有请全连接层 Dense Layer 全连接层
全连接层Dense 是深度神经网络中常用的一种层类型也是最基本的层类型之一。全连接层将上一层输入层或者前一层隐藏层的每个神经元与本层的 每个神经元 都进行连接形成一个完全连接的网络结构因此也称为全连接层。
在全连接层中每个神经元的输出值是上一层所有神经元的 加权和然后再经过一个 非线性激活函数 进行处理。如果本层有 nnn 个神经元上一层有 mmm 个神经元那么全连接层的 权重矩阵 w⃗\vec{w}w就是一个形状为 (m,n)(m, n)(m,n) 的矩阵而偏置向量bbb的长度为 nnn。 Sequential Model
Sequential model 是一种按顺序堆叠各种深度学习层的简单模型。在 Sequential model 中每一层的输出都成为下一层的输入这些层按照 顺序连接 在一起形成一个深度学习模型故称为顺序模型 代码实现一个神经网络 实现方式一手写神经网络
本节内容只是为了知识引入完整的一个 Minst 判断手写 0/1 项目链接如下 xxxxxx
def my_dense(a_in, W, b, g):units W.shape[1]a_out np.zeros(units)for i in range(units):w W[:,i]z np.dot(w, a_in) b[i]a_out[i] g(z)return(a_out)简化上述代码方案通过 np.matmul()
在进行矩阵乘法计算时np.matmul() 会自动识别输入的数组的维度并根据矩阵乘法的规则进行计算。 e.g.e.g.e.g. 假设我们有两个矩阵 AAA 和 BBB它们的形状分别为 (m,n)(m, n)(m,n) 和 (n,p)(n, p)(n,p)那么它们的乘积矩阵 CCC 的形状为 (m,p)(m, p)(m,p)
def my_dense_v(A_in, W, b, g):Z np.matmul(A_in,W)bA_out g(Z)return(A_out)* 实现方式二Tensorflow
本节内容只是为了知识引入完整的一个 Minst 判断手写 0/1 项目链接如下 xxxxxx
model Sequential([ tf.keras.Input(shape(400,)),Dense(units 25, activationsigmoid),Dense(units 15, activationsigmoid),Dense(units 1, activationsigmoid) ], name my_model
) 上述代码中我们引入了三个全连接层
Dense(units 25, activation sigmoid) 该层隐藏层包含 25 个神经元采用 sigmoid 作为激活函数参数的总个数为400 * 25 25 10025 Dense(units 15, activation sigmoid) 该层隐藏层包含 15 个神经元采用 sigmoid 作为激活函数参数的总个数为25 * 15 15 390 Dense(units 1, activation sigmoid) 该层输出层包含 1 个神经元采用 sigmoid 作为激活函数参数的总个数为15 * 1 1 16
完整的一个 Minst 判断手写 0/1 项目链接如下 xxxxxx