как рассчитать весовые коэффициенты для деконволюционного слоя на основе обученных весовых значений соответствующего сверточного слоя - PullRequest
0 голосов
/ 02 июля 2018

Возможно ли это? Слой корреспондируемого уровня для уровня деконволюции - это tf.conv2d_transpose (), но в документе говорится, что это просто слой транспонирования, а не реальное деконвью. Итак, как я могу рассчитать вес для слоев deconv? Как в следующих кодах, как я могу сделать y == x (вычисляя W2 из W)? Это возможно? Или единственный способ - тренировать слой deconv?

# [batch, height, width, depth]
x_image = tf.placeholder(tf.float32,shape=[3,2])
x = tf.reshape(x_image,[1,3,2,1])

#Filter: W  [kernel_height, kernel_width, output_depth, input_depth]
W_cpu = np.array([[-1,1]],dtype=np.float32)
W = tf.Variable(W_cpu)
W = tf.reshape(W, [1,2,1,1])

W_cpu2 = np.array([[-1,1]],dtype=np.float32)
W2 = tf.Variable(W_cpu2)
W2 = tf.reshape(W2, [1,2,1,1])

strides=[1, 1, 1, 1]
padding='VALID'

z = tf.nn.conv2d(x, W, strides=strides, padding=padding)

y = tf.nn.conv2d_transpose(z, W2, [1,3,2,1],strides, padding)

x_data = np.array([[1,-1],[2,2],[1,2]],dtype=np.float32)
with tf.Session() as sess:
    init = tf.initialize_all_variables()
    sess.run(init)

    x = (sess.run(x, feed_dict={x_image: x_data}))
    W = (sess.run(W, feed_dict={x_image: x_data}))
    z = (sess.run(z, feed_dict={x_image: x_data}))
    y = (sess.run(y, feed_dict={x_image: x_data}))

    print("The shape of x:\t", x.shape, ",\t and the x.reshape(3,2) is :")
    print(x.reshape(3,2))
    print()

    print ("The shape of x:\t", W.shape, ",\t and the W.reshape(1,2) is :")
    print (W.reshape(1,2))
    print ("")


    print ("The shape of z:\t", W.shape, ",\t and the W.reshape(1,2) is :")
    print (z.reshape(3))
    print ("")

    print ("The shape of y:\t", y.shape, ",\t and the y.reshape(3,3) is :")
    print (y.reshape(3,2))
    print ("")

Но в Визуализация и понимание сверточных сетей, Мэтью Д. Цейлер и Роб Фергус , они предложили способ деконвенции с "транспонированным" версии тех же фильтров *, это означает, что форма транспонирована или включает вес?

...