pytorch的默认格式是[b,h,w,c];tensorflow的默认格式是[b,c,h,w]
- 把a数据从pytorch转到tensorflow可以用 tf.transpose(a,[0,3,1,2])
数据类型
- 一般常用 .is_tensor 或.dtype 确定数据类型,有时也可以使用 .isinstance
- 可以通过 .ndim 获取数据的维度
- 判断大小可以用 .rank 或 .shape
- 类型转换可以用 .convert_to_tensor 或 .cast
- 使用 tf.Variable 记录梯度信息
创建tensor
-
可以使用 .zeros 或 .ones 创建全零或全1的tensor,其中一个用法是使用 tf.zeros_like(a) 创建一个shape为a的全零的tensor
-
可以使用 tf.fill([a,b],c) 函数创建一个大小为[a,b] 的 全 c 矩阵
-
可以使用 tf.random.normal 函数随机初始化 参数 mean 为 均值 ; stddev 是 方差。若不指定,则默认是均值为0,方差为1的标准正太分布
-
但一般使用 tf.random.truncated_normal 函数初始化,该函数区别与上面的函数,当值接近下图红色部分的时候会舍弃,重新采样,这样是梯度不那么平缓,效果一般比直接使用 tf.random.normal 要好
- 可以使用 tf.random.uniform 函数进行均匀分布的初始话,minval=0和maxval=1 代表是在0,1 之间均匀采样
- 可以使用 .constant 函数直接创建 tensor
索引与切片
- 双冒号 ::
- 代表最后一个冒号后为步长,表示隔多少采样 即 start : end : step
- 代表最后一个冒号后为步长,表示隔多少采样 即 start : end : step
- 可以通过 tf.gather 函数获取索引是数值,如下例所示,将获得 a 数组中 axis 维度上 indices 索引的值
- 可以使用tf.gather_nd函数获取两个数组中的值
- 可以通过 tf.boolearn_mask 函数通过 true或false 取指定位置的值
维度变换
- 使用 tf.expand_dims(a,axis) 使 a数组 在 axis 增加一个维度
- 通过 tf.squeeze 函数 删除 axis上大小为1 的 维度