Tensorflow Conv2D keras中的调节器

Tensorflow Conv2D keras中的调节器,tensorflow,keras,deep-learning,Tensorflow,Keras,Deep Learning,我看到人们在稠密层中使用调节器,但在keras文档的Conv2d中有一个kernel_调节器参数: 当我添加调节器时,如下所示: conv1 = Conv2D(32, (3, 15), strides=(1, 2), padding='same', data_format='channels_first', kernel_regularizer=regularizers.l2(), input_shape=x_train_n.shape[1:])(g0) 我得到这个错误: NameError

我看到人们在稠密层中使用调节器,但在keras文档的Conv2d中有一个kernel_调节器参数:

当我添加调节器时,如下所示:

conv1 = Conv2D(32, (3, 15), strides=(1, 2), padding='same', data_format='channels_first', kernel_regularizer=regularizers.l2(), input_shape=x_train_n.shape[1:])(g0)
我得到这个错误:

NameError: name 'regularizers' is not defined
我已经导入:

import tensorflow as tf
from tensorflow.python.keras.models import Model
from tensorflow.python.keras.layers import Input, Activation, Conv2D, MaxPooling2D, BatchNormalization, UpSampling2D, Lambda, \
Conv2DTranspose, Permute, GaussianNoise, advanced_activations, Add, LeakyReLU, Dropout, ActivityRegularization
from tensorflow.python.keras import regularizers

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.figure as fgr
from tensorflow.python.keras import backend
from tensorflow.python.keras.utils import plot_model, normalize
from tensorflow.python.keras.callbacks import EarlyStopping

如何在Conv2D中调用调节器?进口有冲突吗

我能够运行您的代码,没有任何错误。我们唯一一次收到错误是在场景@戴帽子的家伙提到的,在您尝试创建
Conv2D
层之前,
tensorflow.python.keras import regularizers
中的行没有运行

在下面的代码中,注释了tensorflow.python.keras导入正则化器的
,然后我们得到了您提到的错误

import tensorflow as tf
from tensorflow.python.keras.models import Model
from tensorflow.python.keras.layers import Input, Activation, Conv2D, MaxPooling2D, BatchNormalization, UpSampling2D, Lambda, \
Conv2DTranspose, Permute, GaussianNoise, advanced_activations, Add, LeakyReLU, Dropout, ActivityRegularization
# from tensorflow.python.keras import regularizers

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.figure as fgr
from tensorflow.python.keras import backend
from tensorflow.python.keras.callbacks import EarlyStopping

conv1 = Conv2D(32, (3, 15), strides=(1, 2), padding='same', data_format='channels_first', kernel_regularizer=regularizers.l2(), input_shape=(32,32,3))
输出-

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-1-2ab79df3a82b> in <module>()
     10 from tensorflow.python.keras.callbacks import EarlyStopping
     11 
---> 12 conv1 = Conv2D(32, (3, 15), strides=(1, 2), padding='same', data_format='channels_first', kernel_regularizer=regularizers.l2(), input_shape=(32,32,3))

NameError: name 'regularizers' is not defined
---------------------------------------------------------------------------
NameError回溯(最近一次呼叫上次)
在()
10从tensorflow.python.keras.callbacks导入EarlyStoping
11
--->12 conv1=Conv2D(32,(3,15),步幅=(1,2),填充=(相同),数据格式=(通道优先),内核正则化器=正则化器.l2(),输入形状=(32,32,3))
NameError:未定义名称“正则化器”

希望这能回答你的问题。愉快学习。

您确定代码运行正确吗?该错误似乎暗示,在尝试创建conv层之前,tensorflow.python.keras导入正则化器的
行未运行。否错误位于conv2d的同一行。在从tensorflow.python.keras导入正则化器添加
之前,python无法识别
正则化器.l2()
'l2'
,等等。这是我将参数传递到conv2D的唯一方法,而不会从Pycharm IDE中产生行内错误。请制作一个完整的示例,重现该错误。