输出结果:
1
2
3
### 截断正态分布
`truncated_normal`可以帮助我们生成一个截断的正态分布. 生成的正态分布值会在两倍的标准差的范围之内.
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210609080037547.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjI3NDE2OA==,size_16,color_FFFFFF,t_70)
格式:
tf.random.truncated_normal(
shape, mean=0.0, stddev=1.0, dtype=tf.dtypes.float32, seed=None, name=None
)
参数:
* shape: 张量的形状
* mean: 正态分布的均值, 默认 0.0
* stddev: 正态分布的标准差, 默认为 1.0
* dtype: 数据类型, 默认为 float32
* seed: 随机数种子
* name: 数据名称
### relu 激活函数
激活函数有 sigmoid, maxout, relu 等等函数. 通过激活函数我们可以使得各个层之间达成非线性关系.
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210609083857832.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjI3NDE2OA==,size_16,color_FFFFFF,t_70)
激活函数可以帮助我们提高模型健壮性, 提高非线性表达能力, 缓解梯度消失问题.
### one\_hot
`tf.one_hot`函数是讲 input 准换为 one\_hot 类型数据输出. 相当于将多个数值联合放在一起作为多个相同类型的向量.
格式:
tf.one_hot(
indices, depth, on_value=None, off_value=None, axis=None, dtype=None, name=None
)
参数:
* indices: 索引的张量
* depth: 指定独热编码维度的标量
* on\_value: 索引 indices[j] = i 位置处填充的标量,默认为 1
* off\_value: 索引 indices[j] != i 所有位置处填充的标量, 默认为 0
* axis: 填充的轴, 默认为 -1 (最里面的新轴)
* dtype: 输出张量的数据格式
* name:数据名称
### assign\_sub
`assign_sub`可以帮助我们实现张量自减.
格式:
tf.compat.v1.assign_sub(
ref, value, use_locking=None, name=None
)
参数:
* ref: 多重张量
* value: 张量
* use\_locking: 锁
* name: 数据名称
## 准备工作
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210609105243292.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjI3NDE2OA==,size_16,color_FFFFFF,t_70#pic_center)
import tensorflow as tf
定义超参数
batch_size