2017-07-18 1 views
1

私は、次のCSVファイルを読み込むことTensorFlowを使用しようとしていますを使用してCSVファイルから読み込む(「test.txtのを」)の値がTensorFlow

46, 37, 38 
27, 23, 17 

を印刷して、内容をプリントアウトが、何もありませんすることはできません印刷されています。私が使っているコードは、私はローカル変数が初期化されていないので、あなたが一貫性のない結果を取得していると信じて

import tensorflow as tf 
import os 

filename_queue = tf.train.string_input_producer(["test.txt"]) 

reader = tf.TextLineReader() 
_, csv_row = reader.read(filename_queue) 
record_defaults = [[0], [0], [0]] 
val1, val2, val3 = tf.decode_csv(csv_row, record_defaults=record_defaults) 
data1 = tf.stack([val1, val2, val3]) 

init = tf.global_variables_initializer() 

with tf.Session() as sess: 
    sess.run(init) 
    coord = tf.train.Coordinator() 
    threads = tf.train.start_queue_runners(coord=coord) 
    while True: 
     try: 
      data2 = sess.run([data1]) 
      print(data2) 
     except tf.errors.OutOfRangeError: 
      break 
+0

あなたのコードは私のために正常に動作します(tensorflowバージョン1.2):

は、明示的なエポックの制限(無期限そうそれが必要ループ)で、これを試してみて、初期化ローカル変数で。どのようにそれを実行するのですか? – npf

+0

私はバージョンTensorFlow 1.0.1を持っています。私は、PyCharm 2017.1.2から、そしてWindows 7のコマンドラインでpyファイルからコードを実行しようとしました。 – user1377447

答えて

0

です。 tf.string_input_producerはエポックカウンタのローカル変数を使用しているため、すぐにエポックの上限に達する可能性があります(ここでエラーメッセージが改善される可能性があります)。

import tensorflow as tf 

filename_queue = tf.train.string_input_producer(["/tmp/test.txt"], num_epochs=1) 

reader = tf.TextLineReader() 
_, csv_row = reader.read(filename_queue) 
record_defaults = [[0], [0], [0]] 
val1, val2, val3 = tf.decode_csv(csv_row, record_defaults=record_defaults) 
data1 = tf.stack([val1, val2, val3]) 

init = tf.group(tf.global_variables_initializer(), 
       tf.local_variables_initializer()) 

with tf.Session() as sess: 
    sess.run(init) 
    coord = tf.train.Coordinator() 
    threads = tf.train.start_queue_runners(coord=coord) 
    while True: 
     try: 
      data2 = sess.run([data1]) 
      print(data2) 
     except tf.errors.OutOfRangeError: 
      break 
+1

解決済み:TenserFlow 1.2.1にアップデートし、推奨変更を行いました。どうもありがとう。 – user1377447

関連する問題