2017-05-31 167 views
0

我最近開始使用Tensor Flow進入Deep Learning。我讀過很多在線資源,併爲初學者參加了Udacity課程。我學到了很多深度學習的基本原理。但我現在掙扎的一件事並不是任何這些資源的主題。我不知道如何將我自己的標記數據(CSV格式)放入我的Python程序來訓練我的網絡。我遇到this posting,並開始實施輸入管道的方式,帖子顯示,它的工作到目前爲止。當我試圖用如何將CSV數據導入TensorFlow

sess.run(optimizer, feed_dict={ 
     x: features, 
     y: labels, 
    }) 

TF餵我功能標籤訓練我的模型拋出一個錯誤

TypeError: The value of a feed cannot be a tf.Tensor object. Acceptable feed values include Python scalars, strings, lists, numpy ndarrays, or TensorHandles. 

X和Y被定義爲佔位符和會話調用tf.global_variables_initializer()

x = tf.placeholder(tf.float32, shape=[10, batch_size]) 
y = tf.placeholder(tf.float32) 

但由tf.train.shuffle_batch返回的對象是張量正確嗎?應該/我可以將它們轉換回有效的數據類型,如Numpy數組,還是有其他更有效的方式來讀取我的數據。

+0

我的答案是否解決了問題? – hars

+0

@hars是的,第一種方法現在可以工作。我試過你的第二個解決方案,但我不確定這應該如何工作。 – MoVo99

回答

0

你可以用兩種方法做到這一點。

  1. 隨着feed_dict

    features_numpy,labels_numpy = sess.run([features,labels]) 
    sess.run(optimizer, feed_dict={ x: features_numpy,y: labels_numpy}) 
    

    運行會議,對功能和標籤獲得numpy的值,並使用feed_dict其輸送到模型。但是這樣做效率不高,因爲您將TF數據複製到Numpy並將其再次提供給TF。按照有效的方式。

  2. 避免feed_fict

    不要使用feed_dict和佔位符。將要素和標籤節點直接連接到模型。或者這樣做

    x = features 
    y = labels 
    

    sess.run(model_output /虧損/精度)得到預測或訓練模型。

我希望這有助於。