代码之家  ›  专栏  ›  技术社区  ›  Esriak

tf。火车batch()与我自己的数据?还有一个关于模型培训的问题

  •  1
  • Esriak  · 技术社区  · 7 年前

    我正在努力理解为什么我不能训练我的网络模型,但我不能。如果你能帮助我解决这个问题,我将不胜感激。


    我已经读取了图像数据(600),调整了大小(14x14)并对其进行了规格化。此外,我还在代码中创建了onehot\u编码。

    代码中的“img\u data”变量规范化了600个图像(每个图像的大小为14x14),“labels\u training”变量有600个(每个标签有10个二进制数)标记为onehot\u编码。我期待着tf。火车batch()应返回(50196)和(50,10),但返回:

    X\U真值的张量(“batch\u 31:0”,shape=(50600196),dtype=float32) X\U标签的张量(“batch\u 31:1”,形状=(50600,10),dtype=float32)

    为什么tf。火车函数的作用是:返回3个值(50600196)和(5060010)?

    还有,当我尝试的时候。eval()对于X\u truth和X\u label,它永远不会结束。

    epochs = 12
    print("Start to train")
    sess = tf.InteractiveSession()
    tf.global_variables_initializer().run()
    for _ in range(1000):
        tf.train.start_queue_runners(sess=sess)
        for i in range(epochs):
            print("Epoch ", i)
            X_truth, X_label = tf.train.batch([img_data, labels_training],batch_size=50) 
            x_input=X_truth.eval()
            y_input=X_label.eval()
            sess.run(train_step, feed_dict={x: x_input, y_: y_input}) 
    

    非常感谢你的帮助。

    1 回复  |  直到 4 年前
        1
  •  0
  •   Mohamed Elzarei    7 年前

    来自Tensorflow文档 https://www.tensorflow.org/api_docs/python/tf/train/batch

    如果enqueue\u many为False,则假设张量表示单个示例。形状为[x,y,z]的输入张量将输出为形状为[batch\u size,x,y,z]的张量。

    enqueue_many 默认情况下为False