Keras运行旧ANN代码提示missing required argument 'units'错误如何解决
错误产生原因
你运行的代码使用的是Keras 1.x版本的旧API规范,而你本地安装的是Keras 2.x及以上版本(包括整合进TensorFlow的tf.keras),API参数名发生了不兼容的变更,具体涉及的参数变更如下:
- 旧版
Dense层的输出维度参数output_dim被重命名为必填参数units,这就是报错提示missing 1 required positional argument: 'units'的直接原因 - 旧版
Dense层的权重初始化参数init被重命名为kernel_initializer - 旧版模型训练
fit方法的训练轮次参数nb_epoch被重命名为epochs
修复方案
按以下规则修改对应代码即可正常运行:
- 修改全部Dense层的参数名
- 输入层+第一隐藏层修改为:
classifier.add(Dense(units = 6, kernel_initializer = 'uniform', activation = 'relu', input_dim = 10))- 第二隐藏层修改为:
classifier.add(Dense(units = 6, kernel_initializer = 'uniform', activation = 'relu'))- 输出层修改为:
classifier.add(Dense(units = 3, kernel_initializer = 'uniform', activation = 'sigmoid')) - 修改模型训练代码的参数名
classifier.fit(X_train, y_train, batch_size = 10, epochs = 10) - 修正预测代码的转义字符,把
>改为普通大于号:y_pred = (y_pred > 0.5)
内容的提问来源于stack exchange,提问作者NoobCoder
相关产品推荐
相关产品推荐

