随笔分类 - Tensorflow基础入门
摘要:import tensorflow as tf import numpy as np import matplotlib.pyplot as plt def himmelblau(x): return (x[0]**2 + x[1]-11)**2 + (x[0]+x[1]**2-7)**2 x =
阅读全文
摘要:损失函数梯度 均方误差函数梯度 均方误差表达式: 梯度导数: 交叉熵函数梯度 Softmax 梯度 回顾 Softmax 函数的表达式: Softmax 梯度为: 交叉熵梯度 考虑交叉熵损失函数的表达式: 将log分解: 最终简化求出:
阅读全文
摘要:激活函数导数 Sigmoid 函数导数 导数为: S i g m o i d ( 1 − S i g m o i d ) Sigmoid(1 − Sigmoid) Sigmoid(1−Sigmoid) ReLU 函数导数 LeakyReLU函数导数 Tanh 函数梯度 导数为: 1 − t a n
阅读全文
摘要:自动求导 打开自动求导功能 tf.GradientTape() import tensorflow as tf x = tf.constant([2.3]) #初始化数据 z = tf.constant([1.]) with tf.GradientTape() as tape: tape.watch
阅读全文
摘要:前向传播 采用的数据集是 MNIST 手写数字图片集,输入节点数为 784,第一层的输出节点数是256,第二层的输出节点数是 128,第三层的输出节点是 10,也就是当前样本属于 10 类别的概率. import tensorflow as tf import tensorflow.keras.da
阅读全文
摘要:误差计算 均方差误差MSE M S E ( y , o ) = 1 n ∑ i = 1 n ( y i − o i ) 2 MSE(y,o)=\cfrac{1}{n}\displaystyle\sum_{i=1}^n(y_i-o_i)^2\\ MSE(y,o)=n1i=1∑n(yi−oi)2
阅读全文
摘要:输出层设计 根据不同的输出层选择不同的激活函数 输出实数空间 𝑜𝑖 ∈ 𝑅𝑑 输出属于整个实数空间,或者某段普通的实数空间,比如函数值趋势的预 测,年龄的预测问题等。 输出[0,1]区间 𝑜𝑖 ∈ [0,1] 输出值特别地落在[0, 1]的区间, 如图片生成,图片像素值一般用[0, 1]
阅读全文
摘要:激活函数 激活函数函数代码Sigmoidtf.nn.sigmoid(x)ReLUtf.nn.relu(x)LeakyReLUtf.nn.leaky_relu(x, alpha)Tanhtf.nn.tanh(x) Sigmoid Sigmoid图像 logistic函数,因为其形状为S型,又称Sigm
阅读全文
摘要:误差loss, E \Epsilon E 误差计算 E = g ( f θ ( x ) , y ) \Epsilon = g(f_\theta(x),y) E=g(fθ(x),y) f θ ( x ) f_\theta(x) fθ(x)为当前模型下y的预测值 g ( . ) g(.) g(.)为
阅读全文
摘要:多层神经网络实现 多层神经网络 张量方式实现 初始化各层调用梯度记录器(自动求导)搭建各层 import tensorflow as tf from tensorflow.keras import layers x = tf.random.normal([3,784])#模拟2个样本,50个特征 w
阅读全文
摘要:全连接的层实现 功能函数代码层实现方式layers.Dense(units, activation)获取 Dense 类的权值矩阵fc.kernel获取 Dense 类的偏置向量fc.bias返回待优化参数列表fc.trainable_variables 层实现 layers.Dense(units
阅读全文
摘要:全连接层的张量实现 单层神经网络的实现 定义好权值张量𝑾和偏置张量𝒃批量矩阵相乘函数 tf.matmul()即可完成网络层的计算偏置向量𝒃与计算完𝑿@𝑾的相加将结果传入激活函数 import tensorflow as tf x = tf.random.normal([2,567])#模拟
阅读全文
摘要:神经网络基础 感知机 公式表达: z = W T x + b , a = σ ( z ) = σ ( W T x + b ) z= W^Tx + b , a = \sigma (z) = \sigma (W^Tx + b) z=WTx+b,a=σ(z)=σ(WTx+b) 通过a与Y的误差调整W与b
阅读全文
摘要:经典数据集操作 功能函数代码加载数据集datasets.Dataset_name.load_data()构建 Dataset 对象tf.data.Dataset_name.from_tensor_slices((x, y))随机打散Dataset_name.shuffle(buffer_size)批
阅读全文
摘要:高级操作函数 功能函数代码根据索引号抽样tf.gather(x,index,axis)根据索引号采集多个样本tf.gather_nd(x,index)掩码采样tf.boolean_mask(x, mask, axis)条件取样tf.where(cond,a,b)刷新张量tf.scatter_nd(i
阅读全文
摘要:填充与复制 功能函数代码填充tf.pad(x,padding)复制tf.tile(x,multiples)限幅tf.maximum(x, a),tf.minimum(x, a) 填充 tf.pad(x,padding)padding 以列表形式传入paddings 是包含了多个[Left Paddi
阅读全文
摘要:张量比较 功能函数代码输出转换为概率tf.nn.softmax(x, axis)张量是否相等tf.equal(a, b)或 tf.math.equal(a,b)大于tf.math.greater小于tf.math.less大于等于tf.math.greater_equal小于等于tf.math.le
阅读全文
摘要:数据统计 功能函数代码范数计算tf.norm(x,ord)最值tf.reduce_max(x,axis)、 tf.reduce_min(x,axis)均值tf.reduce_mean(x,axis)和tf.reduce_sum(x,axis)返回统计最值索引tf.argmax(x, axis),tf
阅读全文
摘要:合并与分割 功能代码函数合并之拼接tf.concat(tensors,axis)合并之堆叠tf.stack(tensors, axis)分割tf.split(x,num_or_size_split,axis)分割tf.unstack(x,axis) 合并 拼接 tf.concat(tensors,a
阅读全文
摘要:数学运算 功能代码函数加tf.add减tf.subtract乘tf.multiply除tf.divide整除//余除%乘方**或者 tf.pow(x, a)矩阵乘法@平方和tf.square(x)平方根tf.sqrt(x)自然指数etf.exp(x)自然对数tf.math.log() 简单运算 im
阅读全文