我尝试运行一个使用keras/tensorflow的示例。我使用的是Keras 2.0.8。 当我写这个简单的代码时:
from keras.layers import ZeroPadding2D
pad = ZeroPadding2D(padding=(1, 1), data_format=None)
并尝试调试ZeroPadding2D
我被定向到一个名为convolutional.py
的文件,其中包含@interfaces.legacy_zeropadding2d_support
语句。我有点迷茫,但我认为这是Keras1的兼容性代码。
我检查了ZeroPadding2D
的keras 1和2定义:
convolutional
)和data_format
参数是否应该定向到keras2实现?在我错过了什么?我知道在keras2内部运行keras1代码需要特别注意的是,兼容性接口如here中所述,但是我的(小)代码中有什么东西是keras1?在
我对python还比较陌生(如果不是很明显的话),如果有什么不同的话,我正在使用pyCharm进行调试。在
那么,我该如何运行keras2代码,然后在上面的情况下我遗漏了什么呢?在
你的代码是Keras2,一切正常。在
虽然从} folder 中没有
keras.layers
导入层,但在内部它是从keras.layers.convolutional
导入的。您可以检查keras2.0.8代码,^{ZeroPadding2D
。它只能在convolutional.py
中找到。__init__
文件负责自动导入其他文件中的层。在现在,
@interfaces.legacy...
行被称为“decorator”,它在它出现的方法中添加了一些额外的功能。它位于一个真正的keras2代码之上,用来处理用户试图输入keras1参数的可能性。在你看到的是ker2。你可以看看legacy.interface,看看这个装饰器添加了什么。在
它增加了使用旧的}与新值}。在
dim_ordering
而不是data_format
的可能性,并从dim_ordering
的旧值进行适当的转换,其中tf
和{channels_last
和{相关问题 更多 >
编程相关推荐