首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Keras中为AlexNet进行培训之前加载imagenet权重?

如何在Keras中为AlexNet进行培训之前加载imagenet权重?
EN

Stack Overflow用户
提问于 2019-11-07 10:51:21
回答 2查看 1.6K关注 0票数 2

嗨,我用序贯法用keras写了AlexNet。我想知道是否以及如何加载imagenet权重来训练模型?

目前,我正在为每个层使用randomNormal内核初始化。但是我想使用imagenet的权重进行训练。我把权重作为H5文件。谁也能给出一个示例代码吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-07 11:18:26

代码语言:javascript
复制
model = Sequential()

# 1st Convolutional Layer
model.add(Conv2D(filters=96, input_shape=(224,224,3), kernel_size=(11,11), strides=(4,4), padding=’valid’))
model.add(Activation(‘relu’))
# Max Pooling
model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding=’valid’))

# 2nd Convolutional Layer
model.add(Conv2D(filters=256, kernel_size=(11,11), strides=(1,1), padding=’valid’))
model.add(Activation(‘relu’))
# Max Pooling
model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding=’valid’))

# 3rd Convolutional Layer
model.add(Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), padding=’valid’))
model.add(Activation(‘relu’))

# 4th Convolutional Layer
model.add(Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), padding=’valid’))
model.add(Activation(‘relu’))

# 5th Convolutional Layer
model.add(Conv2D(filters=256, kernel_size=(3,3), strides=(1,1), padding=’valid’))
model.add(Activation(‘relu’))
# Max Pooling
model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding=’valid’))

# Passing it to a Fully Connected layer
model.add(Flatten())
# 1st Fully Connected Layer
model.add(Dense(4096, input_shape=(224*224*3,)))
model.add(Activation(‘relu’))
# Add Dropout to prevent overfitting
model.add(Dropout(0.4))

# 2nd Fully Connected Layer
model.add(Dense(4096))
model.add(Activation(‘relu’))
# Add Dropout
model.add(Dropout(0.4))

# 3rd Fully Connected Layer
model.add(Dense(1000))
model.add(Activation(‘relu’))
# Add Dropout
model.add(Dropout(0.4))

# Output Layer
model.add(Dense(17))
model.add(Activation(‘softmax’))

model.summary()

# Compile the model
model.compile(loss=keras.losses.categorical_crossentropy, optimizer=’adam’, metrics=[“accuracy”])

model.load_weights('weight.h5')
票数 3
EN

Stack Overflow用户

发布于 2019-11-07 11:12:50

因为您用keras编写了AlexNet,并且将权重作为H5文件,所以可以将h5文件中的权重还原到Keras模型中。

代码语言:javascript
复制
model.load_weights('my_model_weights.h5')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58747157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档