【问题标题】:How to feed data properly in tensorflow如何在张量流中正确输入数据
【发布时间】:2019-08-18 03:12:41
【问题描述】:

我一直在学习 Tensorflow,理解 feed_dict 一直是个挑战。以我正在处理的以下代码为例

        p=0
        self.sequence_length=25
        with tf.Session() as sess:
                                    init.run()
                                    char_to_ix={ch:ix for ix,ch in enumerate(self.words)}
                                    ix_to_char={ix:ch for ix,ch in enumerate(self.words)}
                                    words_in_input=self.data[p:p+self.sequence_length]
                                    inputs=[char_to_ix[ix] for ix in words_in_input]
                                    words_in_target=self.data[p+1:p+self.sequence_length+1]
                                    targets=[char_to_ix[ix] for ix in words_in_target]                        
                                    onex=sess.run([selected_next_letter],feed_dict={self.X:inputs,self.y:targets})
        p=p+1

这给出了错误:所有输入的形状必须匹配:values[0].shape = [25] != values[1].shape = [] 但是,当我将代码编辑为

with tf.Session() as sess:
                        init.run()
                        char_to_ix={ch:ix for ix,ch in enumerate(self.words)}
                        ix_to_char={ix:ch for ix,ch in enumerate(self.words)}
                        words_in_input=self.data[p:p+self.sequence_length]
                        inputs=[char_to_ix[ix] for ix in words_in_input]
                        words_in_target=self.data[p+1:p+self.sequence_length+1]
                        targets=[char_to_ix[ix] for ix in words_in_target]    
                        for x,y in zip(inputs,targets):
                            onex=sess.run([selected_next_letter],feed_dict={self.X:x,self.y:y})

它执行。 我的问题是:是否可以在feed_dict 中提供整个列表,例如inputstargets,或者我必须通过一个循环一个一个地输入它。我问这个是因为我一直在阅读的教程,我看到一个完整的列表在 feed_dict 中传递,例如

loss_val = sess.run([train_op, loss_mean], feed_dict={
                    images_batch:images_batch_val,
                    labels_batch:labels_batch_val
                    })

【问题讨论】:

    标签: dictionary tensorflow feed


    【解决方案1】:

    通常出现该错误的原因是您的输入数组 (x) 与标签数组 (y) 的大小不同。正如错误所述,您的标签数组看起来是空的。在执行任何 tensorflowy 操作之前,请确保 x 和 y 数组中都有值并且它们的大小相同。

    要回答您的问题,是的,您可以在训练时使用列表,这是使用 tensorflow 的首选方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-07
      • 1970-01-01
      • 2019-01-18
      • 2020-04-18
      • 1970-01-01
      相关资源
      最近更新 更多