почему я не могу передать строку в tf.placeholder? - PullRequest
0 голосов
/ 28 декабря 2018

мой основной код:

filename = tf.placeholder(tf.string)
filenames = [filename]
dataset = tf.data.TFRecordDataset(filenames)
dataset = dataset.map(parse_image_function,
                      num_parallel_calls=num_parallel_calls)
dataset = dataset.map(_preprocess, num_parallel_calls=num_parallel_calls)
dataset = dataset.shuffle(buffer_size=5000)
dataset = dataset.batch(batch_size)
dataset = dataset.prefetch(buffer_size=prefetch_buffer_size)
iterator = dataset.make_initializable_iterator()
next_element = iterator.get_next()

# Compute for 100 epochs.
for _ in range(100):
    sess.run(iterator.initializer)
    while True:
        try:
            print(get_current_time())
            sess.run(next_element, feed_dict={filename: "train.tfrecords"})
            print(get_current_time())
        except tf.errors.OutOfRangeError:
            break

но я получил ошибку:

File "/home/ly/anaconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1322, in _do_call
    return fn(*args)
File "/home/ly/anaconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1307, in _run_fn
    options, feed_dict, fetch_list, target_list, run_metadata)
File "/home/ly/anaconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1409, in _call_tf_sessionrun
    run_metadata)
tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'Placeholder' with dtype string
     [[Node: Placeholder = Placeholder[dtype=DT_STRING, shape=<unknown>, _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]

Я на самом деле кормить строку, почему эта ошибка происходит?Разве строковый заполнитель не используется таким образом?

...