python - 无法在 Python 中腌制 Tensorflow 对象 - TypeError:无法腌制 _thread._local 对象
问题描述
我想在 tensorflow 上运行 keras fit 后腌制历史对象。但我收到一个错误。
import gzip
import numpy as np
import os
import pickle
import tensorflow as tf
from tensorflow import keras
with gzip.open('mnist.pkl.gz', 'rb') as f:
train_set, test_set = pickle.load(f, encoding='latin1')
X_train = np.asarray(train_set[0])
y_train = np.asarray(train_set[1])
X_test = np.asarray(test_set[0])
y_test = np.asarray(test_set[1])
X_valid, X_train = X_train[:5000]/255.0, X_train[5000:]/255.0
y_valid, y_train = y_train[:5000], y_train[5000:]
class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle Boot']
model = keras.models.Sequential()
model.add(keras.layers.Flatten(input_shape=[28,28]))
model.add(keras.layers.Dense(300, activation = 'relu'))
model.add(keras.layers.Dense(100, activation = 'relu'))
model.add(keras.layers.Dense(10, activation = 'softmax'))
model.summary()
model.compile(loss='sparse_categorical_crossentropy',
optimizer='sgd',
metrics=['accuracy'])
history = model.fit(X_train, y_train, epochs=1,
validation_data =(X_valid, y_valid))
if not os.path.isdir('models'):
os.mkdir('models')
model.save('models/basic.h5')
with open('models/basic_history.pickle', 'wb') as f:
pickle.dump(history, f)
它给了我以下错误:
Traceback (most recent call last):
File "main.py", line 69, in <module>
pickle.dump(history, f)
TypeError: can't pickle _thread._local objects
PS:要运行代码,请下载 fashion_mnist 数据:https ://s3.amazonaws.com/img-datasets/mnist.pkl.g
解决方案
正如卡尔建议的那样,历史对象不能被腌制。但它的字典可以:
with open('models/basic_history.pickle', 'wb') as f:
pickle.dump(history.history, f)
推荐阅读
- api - Alpha Vantage API:如何获取股票市场指数?
- javascript - 如何将 express.js 与您的网站集成
- react-native - 抽屉不从左到右改变位置
- javascript - 循环遍历对象数组并在 HTML 中显示它们
- javascript - VUE - [食物配料计数器]当点击“+添加”按钮时如何增加元素 -topping- 在 v-for list -of toppings- 中的值
- c# - 如何通过 .net SDK 在 AWS ec2 中创建实例
- javascript - React Childs 组件改变了他的父母状态
- docker - alpine krb5 安装 docker 容器中缺少的 kerberos 命令
- c - 在 C 中,是否应将标头中的内联函数外部化到 .c 文件中?
- json - 从 DRF 序列化器返回序列化的 JSON