在tensorflow'中是否限制了num_时代;s csv文件读取器字符串\输入\生产者()?

在tensorflow'中是否限制了num_时代;s csv文件读取器字符串\输入\生产者()?,csv,tensorflow,Csv,Tensorflow,我有一个虚拟csv文件(y=-x+1) 我尝试将其输入一个线性回归模型。因为我只有很少的例子,所以我想在这个文件上迭代1000次训练,所以我设置num_epochs=1000 然而,Tensorflow似乎限制了这个数字。如果我使用num_epochs=5或10,它可以正常工作,但是超过33,它将被限制为33个epochs。那是真的还是我做错了什么 # model = W*x+b ... optimizer = tf.train.GradientDescentOptimizer(0.01) t

我有一个虚拟csv文件(
y=-x+1

我尝试将其输入一个线性回归模型。因为我只有很少的例子,所以我想在这个文件上迭代1000次训练,所以我设置
num_epochs=1000

然而,Tensorflow似乎限制了这个数字。如果我使用num_epochs=5或10,它可以正常工作,但是超过33,它将被限制为33个epochs。那是真的还是我做错了什么

# model = W*x+b
... 
optimizer = tf.train.GradientDescentOptimizer(0.01)
train = optimizer.minimize(loss)

# reading input from csv
filename_queue = tf.train.string_input_producer(["/tmp/testinput.csv"], num_epochs=1000)
reader = tf.TextLineReader(skip_header_lines=1)
...
col_x, col_label = tf.decode_csv(csv_row, record_defaults=record_defaults)

with tf.Session() as sess:
  sess.run(tf.local_variables_initializer())
  sess.run(tf.global_variables_initializer())
  coord = tf.train.Coordinator()
  threads = tf.train.start_queue_runners(coord=coord)
  while True:
    try:
      input_x, input_y = sess.run([col_x, col_label])
      sess.run(train, feed_dict={x:input_x, y:input_y})
...
附带问题,我需要做什么:

input_x, input_y = sess.run([col_x, col_label])
sess.run(train, feed_dict={x:input_x, y:input_y})

我已经尝试过直接运行(train,feed_dict={x:col_x,y:col_y})来避免摩擦,但它不起作用(它们是节点,feed_dict需要常规数据)

以下代码段工作得很好(与您的输入一起):

这将提供以下输出:

edb@lapelidb:/tmp$ python csv.py
3000

以下代码段(与您的输入配合使用)非常有效:

这将提供以下输出:

edb@lapelidb:/tmp$ python csv.py
3000

对我来说,它不适用于更大的num_epoch值(例如100.000)或更长的csv文件(例如相同的行重复了1000次),我只是用100.000个epoch甚至1.000.000个epoch重复了上面的代码测试,两者都给出了相同的结果。。。也许在CPU速度快和IO速度慢之间会出现一些竞争情况?谢谢你自己尝试,给了我继续的动力(挣扎了几个小时)。因此,罪魁祸首是:
try:except tf.errors.OutOfRangeError:finally:coord.request_stop()
(最终…破坏了它)和
coord.join(线程)
。我在互联网上的很多地方看到,我没有考虑删除它们,但没有(或更好地:用错误的顺序把它们装帧)就更好了。谢谢对我来说,它不适用于更大的num_epoch值(例如100.000)或更长的csv文件(例如相同的行重复了1000次),我只是用100.000个epoch甚至1.000.000个epoch重复了上面的代码测试,两者都给出了相同的结果。。。也许在CPU速度快和IO速度慢之间会出现一些竞争情况?谢谢你自己尝试,给了我继续的动力(挣扎了几个小时)。因此,罪魁祸首是:
try:except tf.errors.OutOfRangeError:finally:coord.request_stop()
(最终…破坏了它)和
coord.join(线程)
。我在互联网上的很多地方看到,我没有考虑删除它们,但没有(或更好地:用错误的顺序把它们装帧)就更好了。谢谢
edb@lapelidb:/tmp$ python csv.py
3000