深度学习(15)TensorFlow高阶操作四: 填充与复制
深度學(xué)習(xí)(15)TensorFlow高階操作四: 填充與復(fù)制
- 1. Pad
- 2. 常用于Image Padding
- 3. tile
- 4. tile VS broadcast_to
Outline
- pad
- tile
- broadcast_to
1. Pad
填充數(shù)據(jù)
如下圖所示,填充的部分就為[[1, 2]];
如下圖所示,填充的部分就為[[0, 1], [1, 1]];
(1) tf.pad(a, [[0, 0], [0, 0]]): 表示在a的基礎(chǔ)上在行的維度上上邊添加0行,下邊添加0行,在列的維度上左邊添加0列,右邊添加0列;
(2) tf.pad(a, [[1, 0], [0, 0]]): 表示在a的基礎(chǔ)上在行的維度上上邊添加1行,下邊添加0行,在列的維度上左邊添加0列,右邊添加0列;
(3) tf.pad(a, [[1, 0], [1, 0]]): 表示在a的基礎(chǔ)上在行的維度上上邊添加1行,下邊添加1行,在列的維度上左邊添加0列,右邊添加0列;
(4) tf.pad(a, [[1, 1], [1, 0]]): 表示在a的基礎(chǔ)上在行的維度上上邊添加1行,下邊添加1行,在列的維度上左邊添加1列,右邊添加0列;
(5) tf.pad(a, [[1, 1], [1, 1]]): 表示在a的基礎(chǔ)上在行的維度上上邊添加1行,下邊添加1行,在列的維度上左邊添加1列,右邊添加1列;
注: 添加的數(shù)值默認(rèn)為0。
2. 常用于Image Padding
3. tile
- repeat data along dim n times
- [a, b, c], 2
- →\to→ [a, b, c, a, b, c]
- broadcast_to
(1) tf.tile(a, [1, 2]): 將a的第1個維度復(fù)制1遍,將a的第2個維度復(fù)制2遍,需要注意的是,tile的參數(shù)[1, 2]的數(shù)量需要與a的維度的數(shù)量相等,即如果a有3個維度,那么tile里的元素個數(shù)就是3;
(2) tf.tile(a, [2, 1]): 將a的第1個維度復(fù)制2遍,將a的第2個維度復(fù)制1遍;
(3) tf.tile(a, [2, 2]): 將a的第1個維度復(fù)制2遍,將a的第2個維度復(fù)制2遍;
4. tile VS broadcast_to
(1) 從最終結(jié)果來看,tile與broadcast_to效果一樣;
(2) 從占用內(nèi)存方面來看broadcast_to要優(yōu)于tile,因為broadcast_to不會占用內(nèi)存。
參考文獻(xiàn):
[1] 龍良曲:《深度學(xué)習(xí)與TensorFlow2入門實(shí)戰(zhàn)》
總結(jié)
以上是生活随笔為你收集整理的深度学习(15)TensorFlow高阶操作四: 填充与复制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习(14)TensorFlow高阶
- 下一篇: 深度学习(16)TensorFlow高阶