【问题标题】:Tensorflow: Setting an array element with a sequenceTensorflow:使用序列设置数组元素
【发布时间】:2016-03-26 02:11:16
【问题描述】:

我正在尝试使用我自己的图像数据集训练 CNN,但是当将批处理数据和标签传递给 feed_dict 时,我从阅读 here 中得到错误 ValueError: setting an array element with a sequence,这是一个维度问题,并且可能来自我的batch_label 张量,但我不知道如何使它成为一个热张量(我的图表所期望的)。

我在这里上传了完整的代码作为要点:https://gist.github.com/guivn/f7f753547f77a3b12992

【问题讨论】:

    标签: python-3.x machine-learning tensorflow


    【解决方案1】:

    TL;DR:您不能将tf.Tensor 对象(即gist 中的batch_databatch_labels)作为另一个张量的值。 (我相信在更新的 TensorFlow 版本中,错误信息应该更清楚。)

    很遗憾,您目前无法使用 feed/tf.placeholder() 机制将一个 TensorFlow 图的结果传递给另一个。我们正在研究使这更容易的方法,因为这是一个常见的混淆和功能要求。但是,对于您的确切程序,应该很容易解决这个问题。只需移动创建输入的lines 并用它们替换占位符。您的程序将如下所示:

    with graph.as_default():
    
      # Input data.
      filename_and_label_tensor = tf.train.string_input_producer(['train.txt'], shuffle=True)
      data, label = parse_csv(filename_and_label_tensor)
      tf_train_dataset, tf_train_labels = tf.train.batch([data, label], batch_size, num_threads=4)
    
      # Rest of the model construction goes here....
    

    通常,如果您想通过同一模型传递另一个数据集,例如用于评估 - 制作图表的另一个副本是最简单的(可能共享相同的 tf.Variable 对象)。

    【讨论】:

      猜你喜欢
      • 2018-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 2018-02-07
      • 2016-08-13
      • 1970-01-01
      相关资源
      最近更新 更多