Tensorflow,Keras:“模型”对象没有属性“ _get_distribution_strategy”

时间:2020-07-16 12:25:00

标签: python tensorflow keras

我正在尝试使用CNN运行视频分类代码,但是在训练模型时,出现此错误:

文件“ C:\ Users [我的名字] \ anaconda3 \ envs \ tensorflow \ lib \ site-packages \ tensorflow_core \ python \ keras \ callbacks.py”,行1532,在set_model中 self.log_dir,self.model._get_distribution_strategy())#pylint:disable =受保护的访问 AttributeError:“模型”对象没有属性“ _get_distribution_strategy”

据我了解,这是直接链接到库keras的错误。有人知道是否有解决方法要解决,或者是否有模型“ kernel”具有属性“ _get_distribution_strategy”的早期版本的keras?我在过去几天尝试运行的许多类似代码中都看到了此错误,所以我不敢相信我是唯一遇到此问题的人。

谢谢大家的帮助。

(编辑:

这是函数train_model,似乎从中出现错误:

def train_model(model, nb_epoch, generators, callbacks=[]):
    train_generator, validation_generator = generators
    model.fit_generator(
        train_generator,
        steps_per_epoch=100,
        validation_data=validation_generator,
        validation_steps=10,
        epochs=nb_epoch,
        callbacks=callbacks)
    return model

这是进口产品:

from keras.applications.inception_v3 import InceptionV3
from keras.optimizers import SGD
from keras.preprocessing.image import ImageDataGenerator
from keras.models import Model
from keras.layers import Dense, GlobalAveragePooling2D
from keras.callbacks import ModelCheckpoint, TensorBoard, EarlyStopping

1 个答案:

答案 0 :(得分:0)

问题来自使用tensorflowkeras的不兼容版本。尝试将所有导入从from keras更改为from tensorflow.keras

from tensorflow.keras.applications.inception_v3 import InceptionV3
from tensorflow.keras.optimizers import SGD
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Dense, GlobalAveragePooling2D
from tensorflow.keras.callbacks import ModelCheckpoint, TensorBoard, EarlyStopping

如果它不起作用,请尝试卸载keras并在答案中使用相同的导入。