keras中的卷积层

keras中的卷积层,keras,Keras,我正在探索keras中的卷积层: 我在任何地方都能找到以下类型的代码行: @interfaces.legacy_conv1d_support @interfaces.legacy_conv2d_support 这些线路的工作原理和作用。我在谷歌上搜索,但没有找到答案。请解释一下 这些以@开头的行在python中称为decorators。查看页面,阅读关于它们的简要摘要。这个decorators的基本功能是,它们将下面的函数包装成另一个具有某种“包装器”函数的函数,如预处理参数、更改函数的可

我正在探索keras中的卷积层:

我在任何地方都能找到以下类型的代码行:

 @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的内部方面,因此您无需担心或照顾