TypeError:使用cross_validate时无法腌制_thread.RLock对象

时间:2020-07-03 19:20:02

标签: tensorflow keras scikit-learn

我有一个keras模型,并使用kerasclassifier将其转换为scikit模型,但是我如何转换对象似乎有些问题。

使用cross_validate函数@ https://github.com/Neetu162/DeepLearningResearch/blob/677d1ddeb6f345716a457b977c26cbe14efa7bb0/Demo/classify_demo.py#L83

时出现此错误
  File "/anaconda3/lib/python3.7/site-packages/joblib/parallel.py", line 797, in dispatch_one_batch
    tasks = self._ready_batches.get(block=False)
  File "/anaconda3/lib/python3.7/queue.py", line 167, in get
    raise Empty
Empty
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/DeepLearningResearch/Demo/classify_demo.py", line 171, in <module>
    main()
  File "/DeepLearningResearch/Demo/classify_demo.py", line 83, in main
    cv_result = cross_validate(model, perm_inputs_1, cv=5, return_train_score=True, n_jobs=1)
  File "/anaconda3/lib/python3.7/site-packages/sklearn/utils/validation.py", line 73, in inner_f
    return f(**kwargs)
  File "/anaconda3/lib/python3.7/site-packages/sklearn/model_selection/_validation.py", line 248, in cross_validate
    for train, test in cv.split(X, y, groups))
  File "/anaconda3/lib/python3.7/site-packages/joblib/parallel.py", line 1004, in __call__
    if self.dispatch_one_batch(iterator):
  File "/anaconda3/lib/python3.7/site-packages/joblib/parallel.py", line 808, in dispatch_one_batch
    islice = list(itertools.islice(iterator, big_batch_size))
  File "/anaconda3/lib/python3.7/site-packages/sklearn/model_selection/_validation.py", line 248, in <genexpr>
    for train, test in cv.split(X, y, groups))
  File "/anaconda3/lib/python3.7/site-packages/sklearn/utils/validation.py", line 73, in inner_f
    return f(**kwargs)
  File "/anaconda3/lib/python3.7/site-packages/sklearn/base.py", line 87, in clone
    new_object_params[name] = clone(param, safe=False)
  File "/anaconda3/lib/python3.7/site-packages/sklearn/utils/validation.py", line 73, in inner_f
    return f(**kwargs)
  File "/anaconda3/lib/python3.7/site-packages/sklearn/base.py", line 71, in clone
    return copy.deepcopy(estimator)
  File "/anaconda3/lib/python3.7/copy.py", line 180, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/anaconda3/lib/python3.7/copy.py", line 280, in _reconstruct
    state = deepcopy(state, memo)
  File "/anaconda3/lib/python3.7/copy.py", line 150, in deepcopy
    y = copier(x, memo)
  File "/anaconda3/lib/python3.7/copy.py", line 240, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/anaconda3/lib/python3.7/copy.py", line 180, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/anaconda3/lib/python3.7/copy.py", line 280, in _reconstruct
    state = deepcopy(state, memo)
  File "/anaconda3/lib/python3.7/copy.py", line 150, in deepcopy
    y = copier(x, memo)
  File "/anaconda3/lib/python3.7/copy.py", line 240, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/anaconda3/lib/python3.7/copy.py", line 180, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/anaconda3/lib/python3.7/copy.py", line 280, in _reconstruct
    state = deepcopy(state, memo)
  File "/anaconda3/lib/python3.7/copy.py", line 150, in deepcopy
    y = copier(x, memo)
  File "/anaconda3/lib/python3.7/copy.py", line 240, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/anaconda3/lib/python3.7/copy.py", line 180, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/anaconda3/lib/python3.7/copy.py", line 280, in _reconstruct
    state = deepcopy(state, memo)
  File "/anaconda3/lib/python3.7/copy.py", line 150, in deepcopy
    y = copier(x, memo)
  File "/anaconda3/lib/python3.7/copy.py", line 240, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/anaconda3/lib/python3.7/copy.py", line 169, in deepcopy
    rv = reductor(4)
TypeError: can't pickle _thread.RLock objects

我使用KerasClassifier或cross_validate的方式有什么不正确吗?

0 个答案:

没有答案