tensorflow一維卷積輸入_深度學習中的反卷積(Transposed Convolution)

 2023-11-11 阅读 23 评论 0

摘要:反卷積(Transposed Convolution)是一種圖像上采樣(UpSample)的方法,在DCGAN中用它來將隨機采樣的值轉換為一張完整的圖像。DCGAN生成手寫數字。圖片來源【5】Transposed Convolution“反向卷積也叫轉置卷積,它是一種特殊的正向卷積,先按照一定的比例通過

反卷積(Transposed Convolution)是一種圖像上采樣(UpSample)的方法,在DCGAN中用它來將隨機采樣的值轉換為一張完整的圖像。

9502dcfbd33928274f44124ad4e18dea.gif
DCGAN生成手寫數字。圖片來源【5】

Transposed Convolution

反向卷積也叫轉置卷積,它是一種特殊的正向卷積,先按照一定的比例通過補0來擴大輸入圖像的尺寸,接著旋轉卷積核(Kernel),再進行正向卷積。

反卷積的操作只是恢復了矩陣的尺寸大小,并不能恢復每個元素值。

tf.nn.conv2d_transpose(
input, filters, output_shape, strides, padding='SAME', data_format='NHWC',
dilations=None, name=None
)

Transposed Convolution將Output Size恢復為Input Size,對于Convolution過程,我們知道其Output Size與Input Size的尺寸關系如下:

其中,o為Output Size, i是Input Size, p為Padding Size,s為Stride。

若要將o恢復為i,需考慮2種情況,整除以及不整除兩種情況。

詳細的公式就不推導了,網上有很多資料,有興趣可以深入研究下這些材料:

https://www.cnblogs.com/shine-lee/p/11559825.html

A guide to convolution arithmetic for deep learning

Tensorflow中實現反卷積

假設我們令輸入圖像為:

卷積核(kernel)為:

Case 1

如果要使輸出的尺寸是5 x 5,步長stride = 2,tensorflow代碼:

tf.nn.conv2d_transpose(
value=input, filter=kernel,
output_shape=[1,5,5,1],
strides=2, padding='SAME')

Tensorflow的內部做了以下幾件事情:

1)根據步數stride對Input進行填充,即在Input的每個元素之間填充0 ,填充0的個數n與stride的關系為:

這里stride=1,所以在每個元素之間填充一個0。

2)用卷積核kernel對填充后的輸入進行stride=1的正向卷積,輸入尺寸為5 x 5。

Case 2

如果要使輸出的尺寸是6x6,其它參數不變,tensorflow代碼:

tf.nn.conv2d_transpose(
value=input, filter=kernel,
output_shape=[1,6,6,1],
strides=2, padding='SAME')

卷積類型是same,我們首先在外圍填充一圈0。此時仍然不能生成尺寸為6x6的圖片,Tensorflow會在左上再填充一行和一列0,填充后的輸入為:

對input執行卷積核為3x3的卷積操作,結果如下:

反卷積動圖效果

858c10635e0768e5d2588d82d2bb9e39.gif
No padding, no strides, transposed,圖片來源【1】
30360930fdc4a227dee59a25cdcd1276.gif
No padding, strides=1, transposed,圖片來源【1】

參考材料

  1. https://github.com/vdumoulin/conv_arithmetic?

  2. https://www.tensorflow.org/api_docs/python/tf/nn/conv2d_transpose?

  3. https://zhuanlan.zhihu.com/p/31988761

  4. https://www.cnblogs.com/shine-lee/p/11559825.html?

  5. https://www.tensorflow.org/tutorials/generative/dcgan?hl=zh-cn

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/171116.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息