【发布时间】:2020-03-04 01:22:27
【问题描述】:
我已经在 Matlab 2019b 中训练了一个进行二进制分类的 CNN。当这个 CNN 在测试数据集中进行测试时,它的准确率约为 95%。我使用了exportONNXNetwork 函数,以便可以在 Keras 的 Tensorflow 中实现我的 CNN。这是我在 keras 中使用 ONNX 文件的代码:
import onnx
from onnx_tf.backend import prepare
import numpy as np
from numpy import array
from IPython.display import display
from PIL import Image
onnx_model = onnx.load("model.onnx")
tf_rep = prepare(onnx_model)
img = Image.open("image.jpg").resize((224,224))
img = array(img).reshape(1,3,224,224)
img = img.astype(np.uint8)
classification = tf_rep.run(img)
print(classification)
当在 same 测试数据集上测试此 Python 代码时,它几乎将所有内容都归类为 0 类,少数情况下属于 1 类。我不确定为什么会这样。
【问题讨论】:
-
您是否对 Matlab 中的测试数据进行了未考虑的任何预处理步骤?您确定
PIL.Image中的图像数据与imread中的图像数据格式完全相同(例如,8 位无符号整数与浮点数)或您用来获取图像数据的任何 Matlab 函数吗?跨度> -
我没有对 Matlab 中的测试数据做任何预处理步骤,它们都使用 uint8 作为格式。
标签: python matlab tensorflow keras conv-neural-network