我用的是Keras pretrained型号VGG16。问题是,在将tensorflow配置为使用GPU之后,我得到了一个以前使用CPU时没有的错误。
错误如下:
Traceback (most recent call last):
File "/home/guillaume/Documents/Allianz/ConstatOrNotConstatv3/train_network.py", line 109, in <module>
model = LeNet.build(width=100, height=100, depth=3, classes=5)
File "/home/guillaume/Documents/Allianz/ConstatOrNotConstatv3/lenet.py", line 39, in build
output = model(pretrainedOutput)
File "/usr/local/lib/python3.6/dist-packages/keras/engine/base_layer.py", line 443, in __call__
previous_mask = _collect_previous_mask(inputs)
File "/usr/local/lib/python3.6/dist-packages/keras/engine/base_layer.py", line 1311, in _collect_previous_mask
mask = node.output_masks[tensor_index]
AttributeError: 'Node' object has no attribute 'output_masks'
我在执行此代码后得到它:
pretrained_model = VGG16(
include_top=False,
input_shape=(height, width, depth),
weights='imagenet'
)
for layer in pretrained_model.layers:
layer.trainable = False
model = Sequential()
# first (and only) set of FC => RELU layers
model.add(Flatten())
model.add(Dense(200, activation='relu'))
model.add(Dropout(0.5))
model.add(BatchNormalization())
model.add(Dense(400, activation='relu'))
model.add(Dropout(0.5))
model.add(BatchNormalization())
# softmax classifier
model.add(Dense(classes,activation='softmax'))
pretrainedInput = pretrained_model.input
pretrainedOutput = pretrained_model.output
output = model(pretrainedOutput)
model = Model(pretrainedInput, output)
编辑1:我有凯拉斯(2.2.2)和张量流(1.10.0rc1)。我也试过Keras2.2.0和同样的错误。问题是,我使用的python环境对其他非预训练NN起作用。
编辑2:我可以连接两个自制模型。只有经过预处理的才有问题,而不仅仅是VGG16。
您可能从tensorflow.keras导入tf.keras.layers或tf.keras.applications或其他keras模块,并根据版本等将这些对象与“pure”keras包中的对象混合,后者不兼容。我建议您查看是否可以从“pure”keras模块导入并运行所有内容;调试时不要使用tf.keras,因为它们不一定兼容。我也有同样的问题,这个解决方案对我很有用。
我也有类似的问题,但架构不同。正如人们所建议的,不要将keras与tensorflow.keras混合使用,因此尝试交换如下代码:
致:
还要确保,不要在代码中使用keras.something(不仅仅是导入),希望它能帮助您:) 另外,我使用了Keras2.2.4和tensorflow 1.10.0
当我同时导入keras和tenerflow.keras时,出现了相同的错误:
from tensorflow.keras.optimizers import Adam from keras.utils import multi_gpu_model
我在将代码更改为:
from tensorflow.keras.optimizers import Adam from tensorflow.keras.utils import multi_gpu_model
相关问题 更多 >
编程相关推荐