拼接:通过 tf.concat(tensors, axis),其中 tensors 保存了所有需要合并的张量 List,axis 指定需要合并的维度
堆叠: tf.concat() 直接在现有维度上面合并数据,并不会创造新的维度
若希望创建一个新的维度,则需要使用 tf.stack( ) 操作。但tf.stack( )需要所有的合并张量完全一致;使用 tf.stack(tensors, axis)可以合并多个张量 tensors,其中 axis 指定插入新维度的位 置,当axis ≥ 0时,在 axis 之前插入;当axis < 0时, 在 axis 之后插入新维度。
通过 tf.split(x, axis, num_or_size_splits)可以完成张量的分割操作
*
x:待分割张量
*
axis:分割的维度索引号
*
num_or_size_splits:切割方案。当 num_or_size_splits 为单个数值时,如 10,表示切割 为 10 份;当 num_or_size_splits 为 List 时,每个元素表示每份的长度
如果希望在某个维度上全部按长度为 1 的方式分割,还可以直接使用 tf.unstack(x, axis)。
以通过 tf.norm(x, ord)求解张量的 L1, L2, ∞等范数
其中参数 ord 指定为 1,2 时计算 L1, L2 范数,指定为 np.inf 时计算∞−范数
通过 tf.reduce_max, tf.reduce_min, tf.reduce_mean, tf.reduce_sum 可以求解张量在某个维度上的最大、最小、均值、和,也可以求全局最大、最小、均值、和
tf.nn.softmax(out, axis=1) # 通过 softmax 转换为概率值
tf.argmax(out, axis=1) # 选取概率最大的位置
tf.equal(pred,y) # 预测值与真实值比较
填充操作可以通过 tf.pad(x, paddings)函数实现,paddings 是包含了多个 [𝐿𝑒𝑓𝑡 𝑃𝑎𝑑𝑑𝑖𝑛𝑔,𝑅𝑖𝑔ℎ𝑡 𝑃𝑎𝑑𝑑𝑖𝑛𝑔]的嵌套方案 List
通过 tf.maximum(x, a)实现数据的下限幅:𝑥 ∈ [𝑎,+∞);可以通过 tf.minimum(x, a)实现数据的上限幅:𝑥 ∈ (−∞,𝑎]
tf.clip_by_value 实现上下限幅
x = tf.range(9)
tf.clip_by_value(x,2,7) # 限幅为 2~7
tf.gather(x,index,axis) 可以实现根据索引号收集数据的目的
通过 tf.gather_nd,可以通过指定每次采样的坐标来实现采样多个点的目的。
tf.gather_nd(x,[[1,1],[2,2],[3,3]])# 根据多维度坐标收集数据
除了可以通过给定索引号的方式采样,还可以通过给定掩码(mask)的方式采样
tf.boolean_mask(x,mask=[True, False,False,True],axis=0)# 根据掩码方式采样班级
tf.boolean_mask(x,[[True,True,False],[False,True,True]])# 类似tf.gather_nd( )实现多维掩码采样,数组要与数据维度一致
tf.where(cond, a, b)操作可以根据 cond 条件的真假从 a 或 b 中读取数据;其中cond为真,取a,否则取b;
如果a,b 参数不指定时,tf.where 会返回 cond 张量中所有 True 的元素的索引坐标
通过 tf.scatter_nd(indices, updates, shape)可以高效地刷新张量的部分数据,但是只能在全 0 张量的白板上面刷新
indices = tf.constant([[4], [3], [1], [7]])# 构造需要刷新数据的位置
updates = tf.constant([4.4, 3.3, 1.1, 7.7]) # 构造需要写入的数据
tf.scatter_nd(indices, updates, [8])# 在长度为 8 的全 0 向量上根据 indices 写入 updates
x,y = tf.meshgrid(x,y) # 生成网格点,并拆分后返回
通过 datasets.xxx.load_data()即可实现经典数据集的自动加载,其中 xxx 代表具体的数 据集名称。。TensorFlow 会默认将数据缓存在用户目录的.keras/datasets 文件
通过 Dataset.from_tensor_slices 可以将训练部分的数据图片 x 和标签 y 都转换成 Dataset 对象
通过 Dataset.shuffle(buffer_size)工具可以设置 Dataset 对象随机打散数据之间的顺序,