gpt4 book ai didi

python - tf.placeholder_with_default 反向传播

转载 作者:太空宇宙 更新时间:2023-11-03 21:23:04 24 4
gpt4 key购买 nike

我正在尝试在 Tensorflow 中训练自动编码器。然而,这个自动编码器只是我的架构的一部分。我想要以下工作流程:

输入图像-->上游处理的数据-->输入自动编码器-->使用编码图像输出及其梯度。

换句话说,我想要整个编码操作的梯度,包括上游数据处理,w.r.t 输入图像数据。

我还想单独训练我的自动编码器。因此,我认为我可以将输入图像制作为 tf.placeholder_with_default 类型的自动编码器。我的想法是,我可以将上游数据处理直接连接到自动编码器输入中作为默认设置,但也可以允许用户传入训练数据进行训练。

因此,我构造自动编码器的输入,如下所示:

input_x = tf.Variable(tf.zeros(dtype=tf.float32, shape=[1, 60, 200, 3])) #Will be fed in from upstream, for now, zeros is just for testing
self.x = tf.placeholder_with_default(input_x, shape=[None, 60, 200, 3], name='camera') #images are 200 x 60 with 3 channels; x is the input to the autoencoder

我的自动编码器涉及多次调用tf.nn.conv2d。不幸的是,当我尝试使用此设置进行训练时,出现以下错误:

InvalidArgumentError (see above for traceback): Conv2DSlowBackpropInput: input and out_backprop must have the same batch sizeinput batch: 1outbackprop batch: 32 batch_dim: 0

当我将代码更改为:

self.x = tf.placeholder(tf.float32, shape=[None, 60, 200, 3], name='camera') 

我没有任何问题。

我是否尝试正确使用tf.placeholder_with_default?什么可能导致错误? (我可以提供更多代码,但如果可能的话,我不想发布整个 AE)。

最佳答案

尝试将 input_x 声明替换为:

input_x =np.zeros([1, 60, 200, 3], dtype=np.float32)

关于python - tf.placeholder_with_default 反向传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54082576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com