这里我们来看一下Keras中ResNet50的代码。关于ResNet的理解可以参阅深度残差网 点击打开链接
首先我们需要载入将会使用到的库文件
import numpy as np
import warnings
from keras.layers import Input
from keras import layers
from keras.layers import Dense
from keras.layers import Activation
from keras.layers import Flatten
from keras.layers import Conv2D
from keras.layers import MaxPooling2D
from keras.layers import GlobalMaxPooling2D
from keras.layers import ZeroPadding2D
from keras.layers import AveragePooling2D
from keras.layers import GlobalAveragePooling2D
from keras.layers import BatchNormalization
from keras.models import Model
from keras.preprocessing import image
import keras.backend as K
from keras.utils import layer_utils
from keras.utils.data_utils import get_file
from keras.applications.imagenet_utils import decode_predictions
from keras.applications.imagenet_utils import preprocess_input
from keras.applications.imagenet_utils import _obtain_input_shape
from keras.engine.topology import get_source_inputs
然后我们指定预训练模型的权重路径。权重可以从网上下载也可以是你自己此前训练并保存的权重,如何保存训练好的模型和权重可以参阅keras常见问题汇总 点击打开链接
这里提供网上预训练的ResNet50参数下载
WEIGHTS_PATH = 'https://github.com/fchollet/deep-learning-models/releases/download/v0.2/resnet50_weights_tf_dim_ordering_tf_kernels.h5'
WEIGHTS_PATH_NO_TOP = 'https://github.com/fchollet/deep-learning-models/releases/download/v0.2/resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5'
在定义模型的主体结构前,如果你没有阅读本文开头关于深度残差网的链接文章,那么我们简单回顾一下它的模型结构。

本文通过Keras解析ResNet50的完整代码,介绍了如何搭建深度残差网络。文章首先引入必要的库,接着提供预训练的ResNet50参数下载,并详细讲解了模型主体结构,包括identity部分和卷积块的实现。
最低0.47元/天 解锁文章
1163

被折叠的 条评论
为什么被折叠?



