tf.random_normal() 生成正态分布随机数
tf.truncated_normal() 生成去掉过大偏离点的正态分布随机数
tf.random_uniform() 生成均匀分布随机数
tf.zeros 表示生成全 0 数组
tf.ones 表示生成全 1 数组
tf.fill 表示生成全定值数组
tf.constant 表示生成直接给定值的数组
例如:
w=tf.Variable(tf.random_normal(2,3,stddev=2, mean=0, seed=1))
表示生成正态分布随机数,形状两行三列,标准差是 2,均值是 0,随机种子是 1。
tf.matmul = np.dot
a= tf.matmul(X, W1)
y= tf.matmul(a, W2)
基本思想是with所求值的对象必须有一个enter()方法,一个exit()方法。
√过拟合:神经网络模型在训练数据集上的准确率较高,在新的数据进行预测或分类时准确率较低,说明模型的泛化能力差。
√正则化:在损失函数中给每个参数 w 加上权重,引入模型复杂度指标,从而抑制模型噪声,减小过拟合。
√在 Tensorflow 中,一般让模型的输出经过 sofemax 函数,以获得输出分类的概率分布,再与标准 答案对比,求出交叉熵,得到损失函数,用如下函数实现:
代码语言:txt复制ce = tf.nn.sparse_softmax_cross_entropy_with_logits(logits=y, labels=tf.argmax(y_, 1))
cem = tf.reduce_mean(ce)
√matplotlib 模块:Python 中的可视化工具模块,实现函数可视化
终端安装指令:sudo pip install matplotlib
√函数 plt.scatter():利用指定颜色实现点(x,y)的可视化
plt.scatter (x 坐标, y 坐标, c=”颜色”)
plt.show()
√收集规定区域内所有的网格坐标点:
xx, yy = np.mgrid起:止:步长, 起:止:步长 #找到规定区域以步长为分辨率的行列网格坐标点
grid = np.c_xx.ravel(), yy.ravel() #收集规定区域内所有的网格坐标点 √plt.contour()函数:告知 x、y 坐标和各点高度,用 levels 指定高度的点描上颜色
plt.contour (x 轴坐标值, y 轴坐标值, 该点的高度, levels=等高线的高度)
plt.show()
NN优化三元素:正则化、滑动平均、学习率
√在 Tensorflow 中,正则化表示为:
首先,计算预测结果与标准答案的损失值
- MSE: y 与 y的差距(loss_mse) = tf.reduce_mean(tf.square(y-y))
- 交叉熵:ce = tf.nn.sparsesoftmax_cross_entropy_with_logits(logits=y, labels=tf.argmax(y, 1)) y 与 y_的差距(cem) = tf.reduce_mean(ce)
- 自定义:y 与 y_的差距
其次,总损失值为预测结果与标准答案的损失值加上正则化项
loss = y 与 y_的差距 tf.add_n(tf.get_collection('losses'))
Python的with...as的用法
紧跟with后面的语句被求值后,返回对象的__enter__()方法被调用,这个方法的返回值将被赋值给as后面的变量。当with后面的代码块全部被执行完之后,将调用前面返回对象的__exit__()方法。
√在 Tensorflow 中,指数衰减学习率表示为:
代码语言:txt复制learning_rate = tf.train.exponential_decay(
LEARNING_RATE_BASE, global_step,
数据集总样本数 / BATCH_SIZE,
LEARNING_RATE_DECAY,
staircase=True) train_step=tf.train.GradientDescentOptimizer(learning_rate).minimize(loss, global_step=global_step)
√在 Tensorflow 中,滑动平均表示为:
代码语言:txt复制ema = tf.train.ExponentialMovingAverage(MOVING_AVERAGE_DECAY, global_step)
ema_op = ema.apply(tf.trainable_variables())
with tf.control_dependencies([train_step, ema_op]):
train_op = tf.no_op(name='train')
其中,滑动平均和指数衰减学习率中的 global_step 为同一个参数。
##前向传播
前向传播就是搭建模型的计算过程,让模型具有推理能力,可以针对一组输入 给出相应的输出。