知识的价值不在于占有,而在于使用。这篇文章主要讲述Keras官方中文文档:包装器Wrapper相关的知识,希望能为你提供帮助。
包装器Wrapper
TimeDistributed包装器
keras.layers.wrappers.TimeDistributed(layer)
该包装器可以把一个层应用到输入的每一个时间步上
参数
- layer:Keras层对象
例如,考虑一个含有32个样本的batch,每个样本都是10个向量组成的序列,每个向量长为16,则其输入维度为
(32,10,16)
,其不包含batch大小的input_shape
为(10,16)
我们可以使用包装器
TimeDistributed
包装Dense
,以产生针对各个时间步信号的独立全连接:# as the first layer in a model
model = Sequential()
model.add(TimeDistributed(Dense(8), input_shape=(10, 16)))
# now model.output_shape == (None, 10, 8)# subsequent layers: no need for input_shape
model.add(TimeDistributed(Dense(32)))
# now model.output_shape == (None, 10, 32)
程序的输出数据shape为
(32,10,8)
使用
TimeDistributed
包装Dense
严格等价于layers.TimeDistribuedDense
。不同的是包装器TimeDistribued
还可以对别的层进行包装,如这里对Convolution2D
包装:model = Sequential()
model.add(TimeDistributed(Convolution2D(64, 3, 3), input_shape=(10, 3, 299, 299)))
Bidirectional包装器
keras.layers.wrappers.Bidirectional(layer, merge_mode=‘concat‘, weights=None)
双向RNN包装器
参数
- layer:
Recurrent
对象 - merge_mode:前向和后向RNN输出的结合方式,为
sum
,mul
,concat
,ave
和None
之一,若设为None,则返回值不结合,而是以列表的形式返回
model = Sequential()
model.add(Bidirectional(LSTM(10, return_sequences=True), input_shape=(5, 10)))
model.add(Bidirectional(LSTM(10)))
model.add(Dense(5))
model.add(Activation(‘softmax‘))
model.compile(loss=‘categorical_crossentropy‘, optimizer=‘rmsprop‘)
【Keras官方中文文档(包装器Wrapper)】艾伯特(http://www.aibbt.com/)国内第一家人工智能门户
推荐阅读
- poj 3464(Trie)Approximations
- 2-配置Andriod环境时的错误。。。Theme.AppCompat.Light
- 百度云盒怎样用?百度电视云盒运用图文详细教程
- 小米盒子3啥时候出?啥时候上市?小米盒子3代上市发售时间
- 百度云盒怎样?好用吗?百度电视云盒技巧评测
- 小米电视2啥时候出?小米电视2代上市时间
- 小米电视2与小米电视的区别有啥?小米电视2与小米电视区别比较
- 360随身wifi u盘版价格多少钱?360随身wifi u盘版价格
- 360随身wifi u盘版怎样?360随身wifi 8g u盘版技巧评测