gpt4 book ai didi

python - 从 kwargs 中删除一个参数。那可能吗?

转载 作者:太空宇宙 更新时间:2023-11-04 11:10:29 24 4
gpt4 key购买 nike

我正在使用 Keras 中的内置函数来创建 XCeption 集成。在我的集成中,每个 Xception 网络都会考虑不同的权重初始化方法。初始化技术如下:

switcher = {
0: Orthogonal(gain=1.0, seed=None),
1: lecun_uniform(seed=None),
2: VarianceScaling(scale=1.0, mode='fan_in', distribution='normal', seed=None),
3: RandomNormal(mean=0.0, stddev=0.05, seed=None),
4: RandomUniform(minval=-0.05, maxval=0.05, seed=None),
5: TruncatedNormal(mean=0.0, stddev=0.05, seed=None),
6: glorot_normal(seed=None),
7: glorot_uniform(seed=None),
8: he_normal(seed=None),
9: he_uniform(seed=None)
}

好的,所以,对于我的整体中的几个 CNN 中的每一个,我都像下面这样实例化 Xception 网络。

base_model=xception.Xception(include_top=False, weights=None, kernelinitializer=xception_ensemble.switcher.get(init_var))

要包含 kernelinitializer 参数以初始化 Xception 权重,我必须在我的python3.6/site-packages/keras_applications/xception.py 文件。

第一个修改是在 CNN 的构造函数中包含变量 kernelinitializer,如下所示:

def Xception(include_top=True,
weights='imagenet',
input_tensor=None,
input_shape=None,
pooling=None,
classes=1000, kernel_initializer="he_normal", **kwargs):

我放“he_normal”只是因为如果没有通知它必须有一个默认值。

然后,下一步是添加 kernel_initializer 值来初始化 Xception CNN 的任何卷积层。例如:

residual = layers.Conv2D(256, (1, 1), strides=(2, 2),
padding='same', use_bias=False, kernel_initializer=kernel_initializer)(x)

但是这里有一个问题。代码做了以下事情

backend, layers, models, keras_utils = get_submodules_from_kwargs(kwargs)

因此,此函数将所有参数(包括我的外来参数)视为输入,以构建 CNN 的子模块。但是,我的论点(显然)没有被函数识别。因此,会出现以下错误:

File "venv/lib/python3.6/site-packages/keras_applications/init.py", line 20, in get_submodules_from_kwargs raise TypeError('Invalid keyword argument: %s', key) TypeError: ('Invalid keyword argument: %s', 'kernelinitializer')

有没有办法从这些 kwards 中删除我的 kernelinitializer 变量?有什么办法可以解决这个问题吗?

最佳答案

您可以使用字典理解来获取没有特定项目的 kwargs 的副本:

{key: value for key, value in kwargs.items() if key != 'kernelinitializer'}

关于python - 从 kwargs 中删除一个参数。那可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58339751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com