Ich kann einen Platzhalter als Batch_size mit tf.train.batch_join() verwenden (was Warteschlange ist,), so dass ich die Batchgröße im Training dynamisch ändern kann Schleife.dynamische Batchgröße mit tf.data oder tf.contrib.datta
Aber wenn ich Platzhalter (oder eine nontrainable Variable) verwenden als batch_size für tf.data.Dataset.batch() ich diese Fehlermeldung anzeigt,
ValueError: Cannot capture a placeholder (name:Placeholder, type:Placeholder) by value.
Der gesamte Fehler-Stack-Trace ist sehr lang. Ich verfolgte den Fehler v1.4 tensorflow/Python/data/ops/dataset_ops.py: 108 in make_one_shot_iterator()
@function.Defun(capture_by_value=True)
Voll Stack-Trace angebracht. Ich habe das offizielle tf resnet-Modell ausprobiert.
Danke !!
Traceback (most recent call last):
File "imagenet_main.py", line 281, in <module>
tf.app.run(argv=[sys.argv[0]] + unparsed)
File "/usr/lib/python2.7/site-packages/tensorflow/python/platform/app.py", line 48, in run
_sys.exit(main(_sys.argv[:1] + flags_passthrough))
File "imagenet_main.py", line 270, in main
hooks=[logging_hook])
File "/usr/lib/python2.7/site-packages/tensorflow/python/estimator/estimator.py", line 302, in train
loss = self._train_model(input_fn, hooks, saving_listeners)
File "/usr/lib/python2.7/site-packages/tensorflow/python/estimator/estimator.py", line 708, in _train_model
input_fn, model_fn_lib.ModeKeys.TRAIN)
File "/usr/lib/python2.7/site-packages/tensorflow/python/estimator/estimator.py", line 577, in _get_features_and_labels_from_input_fn
result = self._call_input_fn(input_fn, mode)
File "/usr/lib/python2.7/site-packages/tensorflow/python/estimator/estimator.py", line 663, in _call_input_fn
return input_fn(**kwargs)
File "imagenet_main.py", line 269, in <lambda>
True, FLAGS.data_dir, worker_batch_size, FLAGS.epochs_per_eval),
File "imagenet_main.py", line 157, in input_fn
iterator = dataset.make_one_shot_iterator()
File "/usr/lib/python2.7/site-packages/tensorflow/python/data/ops/dataset_ops.py", line 113, in make_one_shot_iterator
_make_dataset.add_to_graph(ops.get_default_graph())
File "/usr/lib/python2.7/site-packages/tensorflow/python/framework/function.py", line 486, in add_to_graph
self._create_definition_if_needed()
File "/usr/lib/python2.7/site-packages/tensorflow/python/framework/function.py", line 321, in _create_definition_if_needed
self._create_definition_if_needed_impl()
File "/usr/lib/python2.7/site-packages/tensorflow/python/framework/function.py", line 338, in _create_definition_if_needed_impl
outputs = self._func(*inputs)
File "/usr/lib/python2.7/site-packages/tensorflow/python/data/ops/dataset_ops.py", line 111, in _make_dataset
return self._as_variant_tensor() # pylint: disable=protected-access
File "/usr/lib/python2.7/site-packages/tensorflow/python/data/ops/dataset_ops.py", line 1225, in _as_variant_tensor
self._input_dataset._as_variant_tensor(), # pylint: disable=protected-access
File "/usr/lib/python2.7/site-packages/tensorflow/python/data/ops/dataset_ops.py", line 1036, in _as_variant_tensor
self._input_dataset._as_variant_tensor(), # pylint: disable=protected-access
File "/usr/lib/python2.7/site-packages/tensorflow/python/data/ops/dataset_ops.py", line 1147, in _as_variant_tensor
self._input_dataset._as_variant_tensor(), # pylint: disable=protected-access
File "/usr/lib/python2.7/site-packages/tensorflow/python/data/ops/dataset_ops.py", line 1598, in _as_variant_tensor
output_types=nest.flatten(self.output_types))
File "/usr/lib/python2.7/site-packages/tensorflow/python/ops/gen_dataset_ops.py", line 1062, in prefetch_dataset
output_shapes=output_shapes, name=name)
File "/usr/lib/python2.7/site-packages/tensorflow/python/framework/op_def_library.py", line 787, in _apply_op_helper
op_def=op_def)
File "/usr/lib/python2.7/site-packages/tensorflow/python/framework/function.py", line 691, in create_op
inputs[i] = self._add_tensor_and_parents(x)
File "/usr/lib/python2.7/site-packages/tensorflow/python/framework/function.py", line 706, in _add_tensor_and_parents
op = self._add_op_and_parents(tensor.op)
File "/usr/lib/python2.7/site-packages/tensorflow/python/framework/function.py", line 718, in _add_op_and_parents
"by value." % (op.name, op.type))
ValueError: Cannot capture a placeholder (name:Placeholder, type:Placeholder) by value.