深度学习(15)TensorFlow高阶操作四: 填充与复制
深度學習(15)TensorFlow高階操作四: 填充與復制
- 1. Pad
- 2. 常用于Image Padding
- 3. tile
- 4. tile VS broadcast_to
Outline
- pad
- tile
- broadcast_to
1. Pad
填充數據
如下圖所示,填充的部分就為[[1, 2]];
如下圖所示,填充的部分就為[[0, 1], [1, 1]];
(1) tf.pad(a, [[0, 0], [0, 0]]): 表示在a的基礎上在行的維度上上邊添加0行,下邊添加0行,在列的維度上左邊添加0列,右邊添加0列;
(2) tf.pad(a, [[1, 0], [0, 0]]): 表示在a的基礎上在行的維度上上邊添加1行,下邊添加0行,在列的維度上左邊添加0列,右邊添加0列;
(3) tf.pad(a, [[1, 0], [1, 0]]): 表示在a的基礎上在行的維度上上邊添加1行,下邊添加1行,在列的維度上左邊添加0列,右邊添加0列;
(4) tf.pad(a, [[1, 1], [1, 0]]): 表示在a的基礎上在行的維度上上邊添加1行,下邊添加1行,在列的維度上左邊添加1列,右邊添加0列;
(5) tf.pad(a, [[1, 1], [1, 1]]): 表示在a的基礎上在行的維度上上邊添加1行,下邊添加1行,在列的維度上左邊添加1列,右邊添加1列;
注: 添加的數值默認為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個維度復制1遍,將a的第2個維度復制2遍,需要注意的是,tile的參數[1, 2]的數量需要與a的維度的數量相等,即如果a有3個維度,那么tile里的元素個數就是3;
(2) tf.tile(a, [2, 1]): 將a的第1個維度復制2遍,將a的第2個維度復制1遍;
(3) tf.tile(a, [2, 2]): 將a的第1個維度復制2遍,將a的第2個維度復制2遍;
4. tile VS broadcast_to
(1) 從最終結果來看,tile與broadcast_to效果一樣;
(2) 從占用內存方面來看broadcast_to要優于tile,因為broadcast_to不會占用內存。
參考文獻:
[1] 龍良曲:《深度學習與TensorFlow2入門實戰》
總結
以上是生活随笔為你收集整理的深度学习(15)TensorFlow高阶操作四: 填充与复制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习(14)TensorFlow高阶
- 下一篇: 智慧于芯 佳明发布GarminMove