【问题标题】:Different exceptions happened when running Keras and scikit-learn运行 Keras 和 scikit-learn 时出现不同的异常
【发布时间】:2019-03-16 00:05:12
【问题描述】:

我尝试将 Keras 模型(作为函数)从 scikit_learn 传递给 KerasClassifier 包装器,然后使用 GridSearchCV 创建一些设置,最后拟合训练和测试数据集(都是 numpy 数组)

然后,我使用相同的 python 脚本,得到了不同的异常,其中一些是:

_1.

Traceback(最近一次调用最后一次):文件“mnist_flat_imac.py”,行 63,在 grid_result = validator.fit(train_images, train_labels) 文件“/home/longnv/PYTHON_ENV/DataScience/lib/python3.5/site-packages/sklearn/model_selection/_search.py​​”, 第 626 行,合适 base_estimator = 克隆(self.estimator)文件“/home/longnv/PYTHON_ENV/DataScience/lib/python3.5/site-packages/sklearn/base.py”, 第 62 行,在克隆中 new_object_params[name] = clone(param, safe=False) 文件“/home/longnv/PYTHON_ENV/DataScience/lib/python3.5/site-packages/sklearn/base.py”, 第 53 行,在克隆中

在这里截取

在 _deepcopy_dict 中 y[deepcopy(key, memo)] = deepcopy(value, memo) 文件“/home/longnv/PYTHON_ENV/DataScience/lib/python3.5/copy.py”,第 174 行, 在深拷贝中 rv = reductor(4) TypeError: can't pickle SwigPyObject objects 异常被忽略:> Traceback(最近一次调用):文件 "/home/longnv/PYTHON_ENV/DataScience/lib/python3.5/site-packages/tensorflow/python/framework/c_api_util.py", 第 52 行,在 __del__ 中 c_api.TF_DeleteGraph(self.graph) AttributeError: 'ScopedTFGraph' object has no attribute 'graph'

_2。

Traceback(最近一次调用最后一次):文件“mnist_flat_imac.py”,行 63,在 grid_result = validator.fit(train_images, train_labels) 文件“/home/longnv/PYTHON_ENV/DataScience/lib/python3.5/site-packages/sklearn/model_selection/_search.py​​”, 第 626 行,合适 base_estimator = 克隆(self.estimator)文件“/home/longnv/PYTHON_ENV/DataScience/lib/python3.5/site-packages/sklearn/base.py”, 第 62 行,在克隆中 new_object_params[name] = clone(param, safe=False) 文件“/home/longnv/PYTHON_ENV/DataScience/lib/python3.5/site-packages/sklearn/base.py”, 第 53 行,在克隆中 返回 copy.deepcopy(estimator) 文件“/home/longnv/PYTHON_ENV/DataScience/lib/python3.5/copy.py”,第 182 行, 在深拷贝中 y = _reconstruct(x, rv, 1, memo) 文件“/home/longnv/PYTHON_ENV/DataScience/lib/python3.5/copy.py”,第 297 行, 在_重建中

在这里截取

在深拷贝中 y = _reconstruct(x, rv, 1, memo) 文件“/home/longnv/PYTHON_ENV/DataScience/lib/python3.5/copy.py”,第 297 行, 在 _reconstruct state = deepcopy(state, memo) 文件“/home/longnv/PYTHON_ENV/DataScience/lib/python3.5/copy.py”,第 155 行, 在深拷贝中 y = 复印机(x,备忘录)文件“/home/longnv/PYTHON_ENV/DataScience/lib/python3.5/copy.py”,第 243 行, 在 _deepcopy_dict y[deepcopy(key, memo)] = deepcopy(value, memo) 文件“/home/longnv/PYTHON_ENV/DataScience/lib/python3.5/copy.py”,第 174 行, 在深拷贝中 rv = reductor(4) TypeError: can't pickle SwigPyObject objects

_3。

Traceback(最近一次调用最后一次):文件“mnist_flat_imac.py”,行 63,在 grid_result = validator.fit(train_images, train_labels) 文件“/home/longnv/PYTHON_ENV/DataScience/lib/python3.5/site-packages/sklearn/model_selection/_search.py​​”, 第 626 行,合适 base_estimator = 克隆(self.estimator)文件“/home/longnv/PYTHON_ENV/DataScience/lib/python3.5/site-packages/sklearn/base.py”, 第 62 行,在克隆中 new_object_params[name] = clone(param, safe=False) 文件“/home/longnv/PYTHON_ENV/DataScience/lib/python3.5/site-packages/sklearn/base.py”, 第 53 行,在克隆中

在这里截取

在 _deepcopy_dict 中 y[deepcopy(key, memo)] = deepcopy(value, memo) 文件“/home/longnv/PYTHON_ENV/DataScience/lib/python3.5/copy.py”,第 182 行, 在深拷贝中 y = _reconstruct(x, rv, 1, memo) 文件“/home/longnv/PYTHON_ENV/DataScience/lib/python3.5/copy.py”,第 306 行, 在 _reconstruct y.dict.update(state) AttributeError: 'NoneType' object has no attribute 'update'

为什么用同一个python脚本会输出不同的错误? 我该如何解决这个问题?

非常感谢!

附言

  • 蟒蛇:3.5
  • 张量流:1.10.1
  • 熊猫:0.23.4
  • Ubuntu:4.4.0-124-通用

【问题讨论】:

    标签: python tensorflow machine-learning scikit-learn keras


    【解决方案1】:

    找到了。

    应该是: clf = KerasClassifier(build_fn=get_model)

    而不是: clf = KerasClassifier(build_fn=get_model())

    【讨论】:

      猜你喜欢
      • 2018-12-31
      • 2023-03-06
      • 2019-06-28
      • 2015-08-25
      • 2020-04-27
      • 2021-02-15
      • 2016-04-15
      • 2019-07-21
      • 2022-11-10
      相关资源
      最近更新 更多