【发布时间】:2019-11-13 10:25:32
【问题描述】:
我已经使用 tensorflow (python) 实现了图像分类机器学习模型,该模型工作正常,现在我必须将模型置于生产阶段,因为我正在使用 sklearn joblib 库,并且还尝试了 pickle 库,但出现错误在这两种情况下
model = Models.Sequential()
model.add(Layers.Conv2D(200,kernel_size=(5,5),activation='relu',input_shape=(150,150,3)))
model.add(Layers.Conv2D(180,kernel_size=(5,5),activation='relu'))
model.add(Layers.MaxPool2D(5,5))
model.add(Layers.Conv2D(50,kernel_size=(5,5),activation='relu'))
model.add(Layers.MaxPool2D(5,5))
model.add(Layers.Flatten())
model.add(Layers.Dense(180,activation='relu'))
model.add(Layers.Dense(100,activation='relu'))
model.add(Layers.Dense(50,activation='relu'))
model.add(Layers.Dropout(rate=0.5))
model.add(Layers.Dense(6,activation='softmax'))
model.compile(optimizer=Optimizer.Adam(lr=0.0001),loss='sparse_categorical_crossentropy',metrics=['accuracy'])
model.summary()
trained = model.fit(Images,Labels,epochs=25,validation_split=0.20)
test_images,test_labels = get_images('C:/Users/shrey/Desktop/img_classification/New folder/seg_test/seg_test/')
test_images = np.array(test_images)
test_labels = np.array(test_labels)
test_images = test_images / 255.0
model.evaluate(test_images,test_labels, verbose=1)
test_images,test_labels = get_images('C:/Users/shrey/Desktop/img_classification/New folder/seg_test/seg_test/')
test_images = np.array(test_images)
test_labels = np.array(test_labels)
test_images = test_images / 255.0
model.evaluate(test_images,test_labels, verbose=1)
#Lets predict the images from the "pred" folder.
In [12]:
pred_images,no_labels = get_images('C:/Users/shrey/Desktop/img_classification/New folder/seg_pred/')
#pred_images = tf.image.decode_jpeg(pred_images)
#pred_images = tf.cast(pred_images, tf.float32)
pred_images = np.array(pred_images)
pred_images.shape
from sklearn.externals import joblib
with open('model_pickle','wb') as f:
pickle.dump(model,f)
---------------------------------------------------------------------------
Type Error Trackback (most recent call last)
<ipython-input-43-5da5ca65d688> in <module>
1 with open('model_pickle','wb') as f:
----> 2 pickle.dump(model,f)
Type Error: can't pickle _thread._local objects
【问题讨论】:
-
我可以假设您的代码比您显示的要多吗?请分享足够的内容让我们重现该问题。例如,什么是“模型”?
-
是的,我已经编辑了帖子,现在你可以看到它
-
改用
model.save('model.h5')。 -
是的,它创建了一个文件名“model.h5”,可以建议我如何使用这个“model.h5”文件进行预测
标签: python tensorflow machine-learning data-science pickle