Транспонированная свертка в tf.keras.слои

#tensorflow #keras

#tensorflow #keras

Вопрос:

Как я могу преобразовать эту функцию в эквивалентную реализацию tf.keras (Tensorflow 2.0)?

 def deconv2d(inputs,out_channels, name=None):
batch, in_height, in_width, in_channels = [int(d) for d in inputs.get_shape()]
filter = tf.get_variable(name   "filter", [4, 4, out_channels, in_channels], initializer= tf.variance_scaling_initializer())
return tf.nn.conv2d_transpose(inputs, filter, [batch, in_height * 2, in_width * 2, out_channels], strides=[1,2,2,1],
                             padding='SAME', name= name)
  

Ответ №1:

TensoFlow 2.0 имеет tf.keras.layers.Conv2DTranspose . Keras — это API высокого уровня по умолчанию для TF 2.0, но он все еще есть tf.nn.conv2d_transpose для приложений низкого уровня

https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/keras/layers/Conv2DTranspose

Комментарии:

1. Привет, да, я знал это. Возможно, мой вопрос направлен на строку 3 tf.get_variable() . Я понимаю, что у Keras есть свой собственный способ управления общими переменными. Я просто не уверен, сработает ли это.

2. Вы можете использовать tf.Variable вместо этого, см. tensorflow.org/alpha/guide/migration_guide