AttributeError: у объекта 'module' нет атрибута placeholder. Как я могу решить эту проблему? - PullRequest
1 голос
/ 19 июня 2019

Когда я запускаю код, это сообщение об ошибке появляется.

Я использую Python 2.7.5, Keras 2.2.4 и tenorflow 2.0.0-beta1. Кто-то сказал мне: «Не создавайте имя файла Tennsflow», но я этого не делал. Я думаю, что это может произойти из-за измененных предметов, которые есть в обновленной версии tenorflow, https://www.tensorflow.org/beta/guide/effective_tf2 , но более низкая версия также не может работать с ошибкой «ValueError: неверные данные маршала». Все процессы выполняются в виртуальной среде.

Сообщение об ошибке

Using TensorFlow backend.
WARNING: Logging before flag parsing goes to stderr.
W0619 16:47:38.715425 139651914356544 deprecation.py:323] From /home/sea/Programs/generalized-phase-detection/generalized-phase-detection-master/venv/lib/python2.7/site-packages/tensorflow/python/compat/v2_compat.py:65: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version.
Instructions for updating:
non-resource variables are not supported in the long term
Traceback (most recent call last):
  File "./gpd_predict.py", line 165, in <module>
    model = model_from_json(loaded_model_json, custom_objects={'tf':tf})
  File "/home/sea/Programs/generalized-phase-detection/generalized-phase-detection-master/venv/lib/python2.7/site-packages/keras/engine/saving.py", line 622, in model_from_json
    return deserialize(config, custom_objects=custom_objects)
  File "/home/sea/Programs/generalized-phase-detection/generalized-phase-detection-master/venv/lib/python2.7/site-packages/keras/layers/__init__.py", line 168, in deserialize
    printable_module_name='layer')
  File "/home/sea/Programs/generalized-phase-detection/generalized-phase-detection-master/venv/lib/python2.7/site-packages/keras/utils/generic_utils.py", line 147, in deserialize_keras_object
    list(custom_objects.items())))
  File "/home/sea/Programs/generalized-phase-detection/generalized-phase-detection-master/venv/lib/python2.7/site-packages/keras/engine/network.py", line 1043, in from_config
    process_layer(layer_data)
  File "/home/sea/Programs/generalized-phase-detection/generalized-phase-detection-master/venv/lib/python2.7/site-packages/keras/engine/network.py", line 1029, in process_layer
    custom_objects=custom_objects)
  File "/home/sea/Programs/generalized-phase-detection/generalized-phase-detection-master/venv/lib/python2.7/site-packages/keras/layers/__init__.py", line 168, in deserialize
    printable_module_name='layer')
  File "/home/sea/Programs/generalized-phase-detection/generalized-phase-detection-master/venv/lib/python2.7/site-packages/keras/utils/generic_utils.py", line 149, in deserialize_keras_object
    return cls.from_config(config['config'])
  File "/home/sea/Programs/generalized-phase-detection/generalized-phase-detection-master/venv/lib/python2.7/site-packages/keras/engine/base_layer.py", line 1103, in from_config
    return cls(**config)
  File "/home/sea/Programs/generalized-phase-detection/generalized-phase-detection-master/venv/lib/python2.7/site-packages/keras/legacy/interfaces.py", line 91, in wrapper
    return func(*args, **kwargs)
  File "/home/sea/Programs/generalized-phase-detection/generalized-phase-detection-master/venv/lib/python2.7/site-packages/keras/engine/input_layer.py", line 87, in __init__
    name=self.name)
  File "/home/sea/Programs/generalized-phase-detection/generalized-phase-detection-master/venv/lib/python2.7/site-packages/keras/backend/tensorflow_backend.py", line 529, in placeholder
    x = tf.placeholder(dtype, shape=shape, name=name)
AttributeError: 'module' object has no attribute 'placeholder'

Я не знаю, является ли это ошибочной строкой, но эта строка - только мой код в сообщении об ошибке. (последняя строка)

# load json and create model
    json_file = open('model_pol.json', 'r')
    loaded_model_json = json_file.read()
    json_file.close()
    model = model_from_json(loaded_model_json, custom_objects={'tf':tf})

Как запустить программу без кода ошибки?

Ответы [ 2 ]

0 голосов
/ 19 июня 2019

Tensorflow 2 по умолчанию не использует заполнители, поэтому он недоступен без использования режима совместимости.

Вы можете сделать

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

, но на самом деле,вы, вероятно, хотите перенести свой код в лучшую версию v2.Ознакомьтесь с официальным руководством здесь: https://www.tensorflow.org/beta/guide/migration_guide

0 голосов
/ 19 июня 2019

Current Keras не совместим с TensorFlow 2.0 (который не был выпущен как стабильный, просто как бета), поэтому не пытайтесь пока использовать официальные кера с tf 2.0 (используйте стабильный тензор потока, как 1.13), или используйте tf.keras вместо tenorflow 2.0 вместо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...