Tensortflow学习笔记

2021-10-12 17:56:34 浏览数 (1)

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 中,正则化表示为:

首先,计算预测结果与标准答案的损失值

  1. MSE: y 与 y的差距(loss_mse) = tf.reduce_mean(tf.square(y-y))
  2. 交叉熵:ce = tf.nn.sparsesoftmax_cross_entropy_with_logits(logits=y, labels=tf.argmax(y, 1)) y 与 y_的差距(cem) = tf.reduce_mean(ce)
  3. 自定义: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 为同一个参数。

##前向传播

前向传播就是搭建模型的计算过程,让模型具有推理能力,可以针对一组输入 给出相应的输出。

0 人点赞