python - 为什么我不能将字符串提供给 tf.placeholder?
问题描述
我的主要代码:
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"]()]]
我实际上输入了一个字符串,为什么会发生这个错误?字符串占位符不是这样使用的吗?
解决方案
推荐阅读
- javascript - 在 Chrome 中使用 React 添加新的 DOM 项目不会保持预期的滚动位置
- excel - 无法设置行属性值无效的属性值错误 - VBA
- terraform - 使用后端在 S3 中存储 Terraform 状态
- java - Maven插件无法解析
- java - 生成不在列表中的字母数字数字的有效方法
- c++ - 如何正确破坏包含指针类的结构的 QVector?
- java - 有没有办法在 LineGraph JavaFX 中以 0 而不是 X、Y 轴的下限开始刻度线?
- printf - 在 Octave 中打印不带换行符的未知类型变量的值
- php - 如何将 PayPal 智能支付按钮与 PHP V2 的 REST API SDK 结合起来?
- datadog - 我可以阻止 DataDog 关闭 OpsGenie 事件吗?