python - Tensorflow TypeError:name_scope中的预期字符串或类似字节的对象
问题描述
我在 Transformer 模型中遇到了 TypeError。它可能与 相关name_scope
,但我不知道如何找到错误 name_scope。
- 张量流 1.13
- 蟒蛇3.7
- 库达 10.0
- 操作系统 Manjaro Linux 18.0.4
主要错误日志:
File "/usr/lib/python3.7/site-packages/tensorflow_estimator/python/estimator/estimator.py", line 358, in train
loss = self._train_model(input_fn, hooks, saving_listeners)
File "/usr/lib/python3.7/site-packages/tensorflow_estimator/python/estimator/estimator.py", line 1122, in _train_model
return self._train_model_distributed(input_fn, hooks, saving_listeners)
File "/usr/lib/python3.7/site-packages/tensorflow_estimator/python/estimator/estimator.py", line 1185, in _train_model_distributed
self._config._train_distribute, input_fn, hooks, saving_listeners)
File "/usr/lib/python3.7/site-packages/tensorflow_estimator/python/estimator/estimator.py", line 1254, in _actual_train_model_distributed
self.config))
File "/usr/lib/python3.7/site-packages/tensorflow/python/distribute/distribute_lib.py", line 1199, in call_for_each_replica
return self._call_for_each_replica(fn, args, kwargs)
File "/usr/lib/python3.7/site-packages/tensorflow/contrib/distribute/python/one_device_strategy.py", line 144, in _call_for_each_replica
return fn(*args, **kwargs)
File "/usr/lib/python3.7/site-packages/tensorflow_estimator/python/estimator/estimator.py", line 1112, in _call_model_fn
model_fn_results = self._model_fn(features=features, **kwargs)
File "/home/inno/Documents/course_2019/nlp/code/train_and_evaluate.py", line 62, in model_fn
logits = model(inputs, targets)
File "/home/inno/Documents/course_2019/nlp/code/model/transformer.py", line 69, in __call__
encoder_outputs = self.encode(inputs, attention_bias)
File "/home/inno/Documents/course_2019/nlp/code/model/transformer.py", line 104, in encode
return self.encoder_stack(encoder_inputs, attention_bias, inputs_padding)
File "/usr/lib/python3.7/site-packages/tensorflow/python/layers/base.py", line 491, in __call__
self._set_scope(scope)
File "/usr/lib/python3.7/site-packages/tensorflow/python/layers/base.py", line 295, in _set_scope
scope, default_name=self._base_name) as captured_scope:
File "/usr/lib/python3.7/site-packages/tensorflow/python/ops/variable_scope.py", line 2204, in __enter__
return self._enter_scope_uncached()
File "/usr/lib/python3.7/site-packages/tensorflow/python/ops/variable_scope.py", line 2305, in _enter_scope_uncached
current_name_scope_name = current_name_scope.__enter__()
File "/usr/lib/python3.7/site-packages/tensorflow/python/framework/ops.py", line 6088, in __enter__
return self._name_scope.__enter__()
File "/usr/lib/python3.7/contextlib.py", line 112, in __enter__
return next(self.gen)
File "/usr/lib/python3.7/site-packages/tensorflow/python/framework/ops.py", line 3988, in name_scope
if not _VALID_SCOPE_NAME_REGEX.match(name):
TypeError: expected string or bytes-like object
我tf.estimator
用来训练和评估。我已经检查了所有的name_scope
and summary.scalar
。可能是变量中的错误吗?
完整的错误日志:
Begin to train and eval Transformer model...
WARNING: The TensorFlow contrib module will not be included in TensorFlow 2.0.
For more information, please see:
* https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md
* https://github.com/tensorflow/addons
If you depend on functionality not listed there, please file an issue.
INFO:tensorflow:Initializing RunConfig with distribution strategies.
INFO:tensorflow:Not using Distribute Coordinator.
INFO:tensorflow:Using config: {'_model_dir': '/home/inno/Documents/course_2019/nlp/saved_model', '_tf_random_seed': None, '_save_summary_steps': 100, '_save_checkpoints_steps': None, '_save_checkpoints_secs': 600, '_session_config': allow_soft_placement: true
graph_options {
rewrite_options {
meta_optimizer_iterations: ONE
}
}
, '_keep_checkpoint_max': 5, '_keep_checkpoint_every_n_hours': 10000, '_log_step_count_steps': 100, '_train_distribute': <tensorflow.contrib.distribute.python.one_device_strategy.OneDeviceStrategy object at 0x7fc556f8c780>, '_device_fn': None, '_protocol': None, '_eval_distribute': None, '_experimental_distribute': None, '_service': None, '_cluster_spec': <tensorflow.python.training.server_lib.ClusterSpec object at 0x7fc556f8c860>, '_task_type': 'worker', '_task_id': 0, '_global_id_in_cluster': 0, '_master': '', '_evaluation_master': '', '_is_chief': True, '_num_ps_replicas': 0, '_num_worker_replicas': 1, '_distribute_coordinator_mode': None}
INFO:tensorflow:Train schedule:
INFO:tensorflow: 1. train for 10000 steps...
INFO:tensorflow: 2. evaluate model..
INFO:tensorflow: 3. compute BLEU..
INFO:tensorflow:Repeated above until the BLEU score reaches 15.0
INFO:tensorflow:Iteration 1:
WARNING:tensorflow:From /usr/lib/python3.7/site-packages/tensorflow/python/data/ops/dataset_ops.py:1419: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
Instructions for updating:
Colocations handled automatically by placer.
INFO:tensorflow:Calling model_fn.
Traceback (most recent call last):
File "Main.py", line 74, in <module>
fire.Fire()
File "/usr/lib/python3.7/site-packages/fire/core.py", line 127, in Fire
component_trace = _Fire(component, args, context, name)
File "/usr/lib/python3.7/site-packages/fire/core.py", line 366, in _Fire
component, remaining_args)
File "/usr/lib/python3.7/site-packages/fire/core.py", line 542, in _CallCallable
result = fn(*varargs, **kwargs)
File "Main.py", line 65, in train
hooks=hooks, stop_threshold=stop_threshold, vocab_file=vocab_file)
File "/home/inno/Documents/course_2019/nlp/code/train_and_evaluate.py", line 351, in run_transformaer
vocab_file=vocab_file)
File "/home/inno/Documents/course_2019/nlp/code/train_and_evaluate.py", line 232, in run_loop
hooks=train_hooks)
File "/usr/lib/python3.7/site-packages/tensorflow_estimator/python/estimator/estimator.py", line 358, in train
loss = self._train_model(input_fn, hooks, saving_listeners)
File "/usr/lib/python3.7/site-packages/tensorflow_estimator/python/estimator/estimator.py", line 1122, in _train_model
return self._train_model_distributed(input_fn, hooks, saving_listeners)
File "/usr/lib/python3.7/site-packages/tensorflow_estimator/python/estimator/estimator.py", line 1185, in _train_model_distributed
self._config._train_distribute, input_fn, hooks, saving_listeners)
File "/usr/lib/python3.7/site-packages/tensorflow_estimator/python/estimator/estimator.py", line 1254, in _actual_train_model_distributed
self.config))
File "/usr/lib/python3.7/site-packages/tensorflow/python/distribute/distribute_lib.py", line 1199, in call_for_each_replica
return self._call_for_each_replica(fn, args, kwargs)
File "/usr/lib/python3.7/site-packages/tensorflow/contrib/distribute/python/one_device_strategy.py", line 144, in _call_for_each_replica
return fn(*args, **kwargs)
File "/usr/lib/python3.7/site-packages/tensorflow_estimator/python/estimator/estimator.py", line 1112, in _call_model_fn
model_fn_results = self._model_fn(features=features, **kwargs)
File "/home/inno/Documents/course_2019/nlp/code/train_and_evaluate.py", line 62, in model_fn
logits = model(inputs, targets)
File "/home/inno/Documents/course_2019/nlp/code/model/transformer.py", line 69, in __call__
encoder_outputs = self.encode(inputs, attention_bias)
File "/home/inno/Documents/course_2019/nlp/code/model/transformer.py", line 104, in encode
return self.encoder_stack(encoder_inputs, attention_bias, inputs_padding)
File "/usr/lib/python3.7/site-packages/tensorflow/python/layers/base.py", line 491, in __call__
self._set_scope(scope)
File "/usr/lib/python3.7/site-packages/tensorflow/python/layers/base.py", line 295, in _set_scope
scope, default_name=self._base_name) as captured_scope:
File "/usr/lib/python3.7/site-packages/tensorflow/python/ops/variable_scope.py", line 2204, in __enter__
return self._enter_scope_uncached()
File "/usr/lib/python3.7/site-packages/tensorflow/python/ops/variable_scope.py", line 2305, in _enter_scope_uncached
current_name_scope_name = current_name_scope.__enter__()
File "/usr/lib/python3.7/site-packages/tensorflow/python/framework/ops.py", line 6088, in __enter__
return self._name_scope.__enter__()
File "/usr/lib/python3.7/contextlib.py", line 112, in __enter__
return next(self.gen)
File "/usr/lib/python3.7/site-packages/tensorflow/python/framework/ops.py", line 3988, in name_scope
if not _VALID_SCOPE_NAME_REGEX.match(name):
TypeError: expected string or bytes-like object