2016-06-12 26 views
16

Tôi muốn sử dụng lưu lượng tensorflow để triển khai mạng chuyển đổi hoàn toàn. Có chức năngLàm thế nào để sử dụng tensorflow để thực hiện deconvolution?

tf.nn.conv2d_transpose(value, filter, output_shape, strides, padding, name), 

có thể được sử dụng để lấy mẫu song sinh. Tuy nhiên, tôi đang bối rối như thế nào để sử dụng nó? Dữ liệu đầu vào là một hình ảnh có một kênh và đầu ra cũng là một hình ảnh có một kênh, có kích thước bằng hai lần so với đầu vào. Tôi cố gắng để sử dụng chức năng như sau, nhưng có một IndexError: list index out of range:

with tf.name_scope('deconv') as scope: 
    deconv = tf.nn.conv2d_transpose(conv6, [3, 3, 1, 1], 
     [1, 26, 20, 1], 2, padding='SAME', name=None) 

Trả lời

18

Got it! (giả sử input_size = [1, 13, 10,1])

with tf.name_scope('deconv') as scope: 
    deconv = tf.nn.conv2d_transpose(input_layer, [3, 3, 1, 1], 
     [1, 26, 20, 1], [1, 2, 2, 1], padding='SAME', name=None) 
+0

Bạn có thể ném một số ánh sáng về cách giải mã này chính xác? Tôi đã tìm kiếm một chút nhưng tôi không thấy cách hàm 'conv2d_transpose' thực hiện deconvolution. –

+1

@ U.Muneeb Deconvolution là một tên (dường như không chính xác) cho convolution transposed. Xem https://datascience.stackexchange.com/questions/6107/what-are-deconvolutional-layers –

Các vấn đề liên quan