Keras版本升级函数变换导致的问题
在使用 CNN的时候,报错: TypeError: (‘Keyword argument not understood:’, ‘padding’)
将“padding”改为“border_mode”,即可
原因:padding 是Keras 2.X的语法,而我的PC安装的是 Keras 1.X版本。
二者的API 有一些地方是有变化的。
如下:(从 1.X 到 2.X )
========【Models】
1、Constructor arguments for Model have been renamed:
input -> inputs
output -> outputs
2、The Sequential model not longer supports the set_input method.
3、For any model saved with Keras 2.0 or higher, weights trained with backend X will be converted to work with backend Y without any manual conversion step.
========【Layers】
1、Dense layer
Changed interface:
output_dim -> units
init -> kernel_initializer
added bias_initializer argument
W_regularizer -> kernel_regularizer
b_regularizer -> bias_regularizer
b_constraint -> bias_constraint
bias -> use_bias
2、Embedding
Convolutional layers :
Interface changes common to all convolutional layers:
nb_filter -> filters
float kernel dimension arguments become a single tuple argument, kernel size. E.g. a legacy call Conv2D(10, 3, 3) becomes Conv2D(10, (3, 3))
kernel_size can be set to an integer instead of a tuple, e.g. Conv2D(10, 3) is equivalent toConv2D(10, (3, 3)).
subsample -> strides. Can also be set to an integer.
border_mode -> padding
init -> kernel_initializer
added bias_initializer argument
W_regularizer -> kernel_regularizer
b_regularizer -> bias_regularizer
b_constraint -> bias_constraint
bias -> use_bias
dim_ordering -> data_format
In the SeparableConv2D layers, init is split into depthwise_initializer andpointwise_initializer.
Added dilation_rate argument in Conv2D and Conv1D.
1D convolution kernels are now saved as a 3D tensor (instead of 4D as before).
2D and 3D convolution kernels are now saved in format spatial_dims + (input_depth, depth)), even with data_format=“channels_first”.
3、Pooling1D
pool_length -> pool_size
stride -> strides
border_mode -> padding
4、Pooling2D,3D
border_mode -> padding
dim_ordering -> data_format