我如何在Keras中从头开始培训一个模型(如EfficientNet、Resnet)?

我如何在Keras中从头开始培训一个模型(如EfficientNet、Resnet)?,keras,deep-learning,computer-vision,transfer-learning,efficientnet,Keras,Deep Learning,Computer Vision,Transfer Learning,Efficientnet,有没有一种方法,我们可以加载网络的体系结构,然后在Keras中从头开始训练它?是的,假设您想从头开始使用“ResNet50v2”为2个类和255x255x3输入训练分类器,您所要做的就是导入该体系结构,而不使用其最后的softmax层,添加自定义图层并使用“无”初始化权重 同样,要使用其他体系结构,如EfficienNet,请参阅。 特别是对于EfficientNet,您也可以遵循以下步骤 from keras.applications.resnet_v2 import ResNet50V2

有没有一种方法,我们可以加载网络的体系结构,然后在Keras中从头开始训练它?

是的,假设您想从头开始使用“ResNet50v2”为2个类和255x255x3输入训练分类器,您所要做的就是导入该体系结构,而不使用其最后的softmax层,添加自定义图层并使用“无”初始化权重

同样,要使用其他体系结构,如EfficienNet,请参阅。 特别是对于EfficientNet,您也可以遵循以下步骤

from keras.applications.resnet_v2 import ResNet50V2 
from keras.models import Model
from keras.layers import Dense, GlobalAveragePooling2D

input_shape = (255,255,3)
n_class = 2
base_model = ResNet50V2(weights=None,input_shape=input_shape,include_top=False)

# Add Custom layers
x = base_model.output
x = GlobalAveragePooling2D()(x)
# ADD a fully-connected layer
x = Dense(1024, activation='relu')(x)
# Softmax Layer
predictions = Dense(n_class, activation='softmax')(x)
model = Model(inputs=base_model.input, outputs=predictions)

# Compile Model
model.compile(optimizer='adam', loss='categorical_crossentropy',metrics=['accuracy'])

# Train
model.fit(X_train,y_train,epochs=20,batch_size=50,validation_data=(X_val,y_val))