【问题标题】:How to feed multiple "LIST" inputs through feed_dict in tensorflow如何通过 tensorflow 中的 feed_dict 提供多个“LIST”输入
【发布时间】:2018-09-21 14:22:26
【问题描述】:

我必须输入如下:

input_t = []
input_z = []
for j in range(batch_size):      
    input_t.append(train_data[train_batch_order[j + i * batch_size], :, :, :])  
    input_z.append(Gtrain_data['input'[train_Gbatch_order[j + i*batch_size], :, :, :])     
input_t = np.array(input_t)
batch_z= np.array(input_z)`

现在,我想按如下方式运行优化器:

_ = sess.run(g_opt, feed_dict={input_images: input_t, input_z: batch_z, lr_G: learning_rate_G})

但我得到了不可散列的类型:'list'。
那么,如何在张量流中通过feed_dict 提供多个“LIST”输入??

【问题讨论】:

    标签: python-3.x tensorflow


    【解决方案1】:

    只有hashable 对象可以是字典键。所以lists不能,而tuples可以。

    我不是 100% 确定,但您可能想像这样创建 feed_dict

    feed_dict = {'input_images': input_t, 'input_z': batch_z, 'lr_G': learning_rate_G}
    

    这里的键是作为值名称的字符串。例如,将变量 input_t 命名为 'input_images',根据 input_t = np.array(input_t) 行,它是 numpy array。这就是大多数时候使用字典的方式 - 在名称(键)和变量(值)之间创建映射。

    【讨论】:

    • 感谢您的回复。如果我像您所说的那样使用 feed_dic,我会收到如下错误::无法将 feed_dict 键解释为张量:名称“input_images”看起来像(无效)操作名称,而不是张量。张量名称的格式必须为“:”。
    • @FaranakSo 我的答案都是关于 Python 中的字典。但问题似乎源于你使用 Tensorflow 的方式。错误说你做错了。我对 Tensorflow 不是很有经验。我想,例如,input_images 变量应该类似于tf.placeholder(tf.float32, shape=[...]),其中shape 取决于input_t 的形状以及g_opt 操作的作用。
    猜你喜欢
    • 2017-12-07
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2012-06-02
    相关资源
    最近更新 更多