我正在尝试使用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
)
答案 0 :(得分:0)
问题来自使用tensorflow
和keras
的不兼容版本。尝试将所有导入从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并在答案中使用相同的导入。