Восстановление официальной контрольной точки Tensorflow Resnet-50 дает ошибку «ExperimentalFunctionBufferingResource»

При попытке перезагрузить официальные модели тензорного потока для контрольной точки ResNet-50 здесь:

http://download.tensorflow.org/models/official/20181001_resnet/checkpoints/resnet_imagenet_v1_fp32_20181001.tar.gz

...используя этот код:

import os
import tensorflow as tf
print(tf.__version__)
saver = tf.train.import_meta_graph(os.path.join(
    'resnet_imagenet_v1_fp32_20181001',
    'model.ckpt-225207.meta'))

Я получаю эту ошибку:

1.13.1
Traceback (most recent call last):
  File "chehckpoint_to_savedmodel.py", line 11, in <module>
    'model.ckpt-225207.meta'))
  File "/Users/*user*/Library/Python/3.7/lib/python/site-packages/tensorflow/python/training/saver.py", line 1435, in import_meta_graph
    meta_graph_or_file, clear_devices, import_scope, **kwargs)[0]
  File "/Users/*user*/Library/Python/3.7/lib/python/site-packages/tensorflow/python/training/saver.py", line 1457, in _import_meta_graph_with_return_elements
    **kwargs))
  File "/Users/*user*/Library/Python/3.7/lib/python/site-packages/tensorflow/python/framework/meta_graph.py", line 806, in import_scoped_meta_graph_with_return_elements
    return_elements=return_elements)
  File "/Users/*user*/Library/Python/3.7/lib/python/site-packages/tensorflow/python/util/deprecation.py", line 507, in new_func
    return func(*args, **kwargs)
  File "/Users/*user*/Library/Python/3.7/lib/python/site-packages/tensorflow/python/framework/importer.py", line 399, in import_graph_def
    _RemoveDefaultAttrs(op_dict, producer_op_list, graph_def)
  File "/Users/*user*/Library/Python/3.7/lib/python/site-packages/tensorflow/python/framework/importer.py", line 159, in _RemoveDefaultAttrs
    op_def = op_dict[node.op]
KeyError: 'ExperimentalFunctionBufferingResource'

Забавно, что поиск в Google «KeyError: 'ExperimentalFunctionBufferingResource'» возвращает ноль совпадений. Это впервые.

Идеи?

Не уверен, как еще перезагрузить эту модель. Я также пробовал это:

path = os.path.join(
    'resnet_imagenet_v1_fp32_20181001',
    'model.ckpt-225207')

checkpoint = tf.train.Checkpoint()
status = checkpoint.restore(path)
print(status)
status.assert_consumed()

Но это не соответствует утверждению без какой-либо другой информации.

Заранее спасибо. п


person PeterT    schedule 29.03.2019    source источник
comment
В первом случае с файлом что-то не так. Код правильный   -  person Sharky    schedule 29.03.2019


Ответы (1)


Кажется, это проблема с версиями TF >= 1.13. Попробуйте откатиться до 1.12 и попробуйте. Он должен работать.

Проблемы, которые нужно отслеживать, следующие: #29751

person lamo_738    schedule 13.06.2019