keras中的卷积层
我正在探索keras中的卷积层: 我在任何地方都能找到以下类型的代码行:keras中的卷积层,keras,Keras,我正在探索keras中的卷积层: 我在任何地方都能找到以下类型的代码行: @interfaces.legacy_conv1d_support @interfaces.legacy_conv2d_support 这些线路的工作原理和作用。我在谷歌上搜索,但没有找到答案。请解释一下 这些以@开头的行在python中称为decorators。查看页面,阅读关于它们的简要摘要。这个decorators的基本功能是,它们将下面的函数包装成另一个具有某种“包装器”函数的函数,如预处理参数、更改函数的可
@interfaces.legacy_conv1d_support
@interfaces.legacy_conv2d_support
这些线路的工作原理和作用。我在谷歌上搜索,但没有找到答案。请解释一下 这些以
@
开头的行在python
中称为decorators
。查看页面,阅读关于它们的简要摘要。这个decorators的基本功能是,它们将下面的函数包装成另一个具有某种“包装器”函数的函数,如预处理参数、更改函数的可访问性等
查看interfaces.py
文件,您将看到:
legacy_conv1d_support = generate_legacy_interface(
allowed_positional_args=['filters', 'kernel_size'],
conversions=[('nb_filter', 'filters'),
('filter_length', 'kernel_size'),
('subsample_length', 'strides'),
('border_mode', 'padding'),
('init', 'kernel_initializer'),
('W_regularizer', 'kernel_regularizer'),
('b_regularizer', 'bias_regularizer'),
('W_constraint', 'kernel_constraint'),
('b_constraint', 'bias_constraint'),
('bias', 'use_bias')],
preprocessor=conv1d_args_preprocessor)
因此,使用此函数基本上是重命名参数。为什么会这样?keras
API更改了某些函数的某些参数的名称(如W_正则化器
->kernel_正则化器
)。为了让用户能够运行旧代码,他们添加了这个decorator,在调用实际函数之前,它将用相应的新参数名替换旧参数名。这允许您运行“旧的”keras1
code,即使您已经安装了keras2
Tl;dr:出于兼容性的原因,这些行仅用于连接。由于这只是keras的内部方面,因此您无需担心或照顾