2

我正在与使用 Keras 的学生一起举办研讨会,所有学生都在 Windows 中安装了相同的 anaconda3。

以下代码为大多数学生提供了错误,除了其中 2 人:

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

from keras.layers import Input, Dense, Lambda, Layer, Conv3D, MaxPooling3D, Flatten, UpSampling3D, Reshape
from keras.models import Model
from keras import backend as K
from keras import metrics
#from keras.datasets import mnist

batch_size = 100
original_dim = 32000 #dimX x dimY x dimZ
latent_dim = 2
intermediate_dim = 512 #256
epochs = 5
epsilon_std = 1.0

x = Input(shape=(40, 20, 40, 1))
h = Conv3D(16, (3, 3, 3), activation='relu', padding='same')(x)
h = MaxPooling3D((2, 2, 2), padding='same')(h)

>>max_pool3d() got an expected keyword argument 'data_format'

文档中,您可以看到该函数maxpooling3d()采用了其他可选参数,例如 exact data_format,但由于我们甚至没有指定它,为什么会出现此错误?为什么它在所有安装中都不一致?

4

1 回答 1

1

如果您确保包含完整的堆栈跟踪会更好,但看起来您正在使用 tensorflow 后端并且问题出在tensorflow version上。

KerasMaxPooling3D层调用tf.nn.max_pool3d函数,在v0.12中没有data_format参数。在最新版本中,它有一个,这就是 keras 期望它的原因。

尝试在所有机器上升级 tensorflow。

于 2018-01-21T14:49:07.617 回答