Keras max_pool3d 得到了预期的关键字参数 'data_format'

Keras max_pool3d got an expected keyword argument 'data_format'

我是 运行 一个使用 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'

documentation 中,您可以看到函数 maxpooling3d() 接受其他可选参数,例如 data_format,但由于我们甚至没有指定它,为什么我们得到这个错误?为什么它在所有安装中都不一致?

确保包含完整的堆栈跟踪会更好,但看起来您使用的是 tensorflow 后端,问题出在 tensorflow 版本

Keras MaxPooling3D 层调用 tf.nn.max_pool3d 函数,在 v0.12 didn't have a data_format argument. In the latest versions 中它有一个,这就是 keras 期望它的原因。

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