ResNet50模型
keras.applications.resnet50.ResNet50(include_top=True, weights='imagenet',
input_tensor=None, input_shape=None,
pooling=None,
classes=1000)
50层残差网络模型,权重训练自ImageNet
该模型在Theano和TensorFlow后端均可使用,并接受channels_first和channels_last两种输入维度顺序
模型的默认输入尺寸是224x224
参数
- include_top:是否保留顶层的全连接网络
- weights:None代表随机初始化,即不加载预训练权重。'imagenet'代表加载预训练权重
- input_tensor:可填入Keras tensor作为模型的图像输出tensor
- input_shape:可选,仅当
include_top=False
有效,应为长为3的tuple,指明输入图片的shape,图片的宽高必须大于197,如(200,200,3) - pooling:当include_top=False时,该参数指定了池化方式。None代表不池化,最后一个卷积层的输出为4D张量。‘avg’代表全局平均池化,‘max’代表全局最大值池化。
- classes:可选,图片分类的类别数,仅当
include_top=True
并且不加载预训练权重时可用。
返回值
Keras 模型对象
参考文献
输入shape
形如(samples,sequence_length)的2D张量
输出shape
形如(samples, sequence_length, output_dim)的3D张量
例子
model = Sequential()
model.add(Embedding(1000, 64, input_length=10))
# the model will take as input an integer matrix of size (batch, input_length).
# the largest integer (i.e. word index) in the input should be no larger than 999 (vocabulary size).
# now model.output_shape == (None, 10, 64), where None is the batch dimension.
input_array = np.random.randint(1000, size=(32, 10))
model.compile('rmsprop', 'mse')
output_array = model.predict(input_array)
assert output_array.shape == (32, 10, 64)
参考文献
- Deep Residual Learning for Image Recognition:如果在研究中使用了ResNet50,请引用该文
嵌入层 Embedding
Embedding层
keras.layers.embeddings.Embedding(input_dim, output_dim, embeddings_initializer='uniform', embeddings_regularizer=None, activity_regularizer=None, embeddings_constraint=None, mask_zero=False, input_length=None)
嵌入层将正整数(下标)转换为具有固定大小的向量,如[[4],[20]]->[[0.25,0.1],[0.6,-0.2]]
Embedding层只能作为模型的第一层
参数
- input_dim:大或等于0的整数,字典长度,即输入数据最大下标+1
- output_dim:大于0的整数,代表全连接嵌入的维度
- embeddings_initializer: 嵌入矩阵的初始化方法,为预定义初始化方法名的字符串,或用于初始化权重的初始化器。参考initializers
- embeddings_regularizer: 嵌入矩阵的正则项,为Regularizer对象
- embeddings_constraint: 嵌入矩阵的约束项,为Constraints对象
- mask_zero:布尔值,确定是否将输入中的‘0’看作是应该被忽略的‘填充’(padding)值,该参数在使用递归层处理变长输入时有用。设置为
True
的话,模型中后续的层必须都支持masking,否则会抛出异常。如果该值为True,则下标0在字典中不可用,input_dim应设置为|vocabulary| + 1。 - input_length:当输入序列的长度固定时,该值为其长度。如果要在该层后接
Flatten
层,然后接Dense
层,则必须指定该参数,否则Dense
层的输出维度无法自动推断。 - A Theoretically Grounded Application of Dropout in Recurrent Neural Networks