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

时间:2018-01-21 10:50:44

标签: python keras conv-neural-network keras-layer max-pooling

我正在与学生一起使用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,但由于我们甚至没有指定它,为什么我们会收到此错误?为什么在所有安装中都不一致?

1 个答案:

答案 0 :(得分:1)

如果您确定包含完整的堆栈跟踪会更好,但看起来您正在使用tensorflow后端,问题在于 tensorflow版本

Keras MaxPooling3D图层调用tf.nn.max_pool3d函数,该函数在v0.12中没有data_format参数。在latest versions中,它有一个,这就是为什么keras期待它。

尝试在所有计算机上升级tensorflow。