Tensorflow 添加新层

Tensorflow 添加新层,tensorflow,pre-trained-model,Tensorflow,Pre Trained Model,我想用1003个类重新训练初始模型,其中前1000个类与imagenet(初始模型)相同。因此,我采用了inception模型,提取了最终的层权重,并在其中添加了3列。我弹出了最后一层,创建了另一层,有1003个类,权重我已经更改,因为前1000个类的权重与《盗梦空间》相同,但在训练时,精度从0开始,这是我没有预料到的。出什么事了 这是我的密码 base_model = InceptionV3(weights='imagenet', include_top=False) m = Inceptio

我想用1003个类重新训练初始模型,其中前1000个类与imagenet(初始模型)相同。因此,我采用了inception模型,提取了最终的层权重,并在其中添加了3列。我弹出了最后一层,创建了另一层,有1003个类,权重我已经更改,因为前1000个类的权重与《盗梦空间》相同,但在训练时,精度从0开始,这是我没有预料到的。出什么事了

这是我的密码

base_model = InceptionV3(weights='imagenet', include_top=False)
m = InceptionV3(weights='imagenet', include_top=True)
a=m.layers[312].get_weights()
k=np.random.normal(size=[2048,3])
k=k/3
l=np.random.normal(size=[3])
l=l/3
a[0]=np.concatenate((a[0],k),axis=1)
a[1]=np.concatenate((a[1],l),axis=0)

x = base_model.output
x = GlobalAveragePooling2D()(x)

predictions = Dense(nb_classes, activation='softmax')(x) 
model = Model(input=base_model.input, output=predictions)
model.layers[312].set_weights(a)

听起来您正在尝试进行一些迁移学习(即,使用inception v3模型对一组不同于最初训练的图像进行分类)。这里有一个关于这个主题的很棒的教程

基本上,您所要做的就是将培训图像放入每个类命名的文件夹中(您将有1003个文件夹),然后运行retain.py脚本(包含在教程中)。您希望确保在新图像文件夹上运行retain.py