我在keras中使用预训练权重训练FC层的resnet时得到了损失= nan

时间:2018-02-13 13:55:25

标签: python keras

这是代码 我正在加载预先训练的模型

img_width, img_height = 299, 299
model=applications.resnet50.ResNet50(input_shape=(img_width, img_height,3),weights='imagenet', include_top=False)

冻结所有resnet层

for layer in model.layers:
    layer.trainable = False

堆叠FC图层

x = model.output
x = Flatten()(x)
x = Dense(512, activation='relu')(x)
x = Dropout(0.5)(x)
x = Dense(512, activation='relu')(x)
x = Dropout(0.5)(x)
predictions = Dense(20, activation='softmax')(x)
model_final = Model(input = model.input, output = predictions)

现在我正在编译和拟合随机测试样本

model_final.compile(loss='categorical_crossentropy', optimizer='adam',metrics=['accuracy'])
s=np.random.rand(10,20)
s1=np.divide(s.T,np.sum(s,axis=1)).T
model_final.fit(np.random.rand(10,299,299,3),s1, nb_epoch = 30, callbacks=[], validation_data=None) 

在训练阶段,我将Nan视为损失

  

大纪元1/30

     

10/10 [==============================] - 0s - 损失:nan - acc:0.1000

即使在使用实际数据集的火车时,它也会给出'nan'

我无法在每个图层输出中找到nan。

我无法弄清楚是否可能导致此错误。

0 个答案:

没有答案