Я обучил CNN в Matlab 2019b, который классифицирует изображения между тремя классами. Когда этот CNN был протестирован в Matlab, он функционировал нормально и занял всего 10-15 секунд, чтобы классифицировать изображение. Я использовал функцию exportONNXNetwork в Maltab, чтобы я мог реализовать свой CNN в Tensorflow. Это код, который я использую для использования файла ONNX в python:
import onnx
from onnx_tf.backend import prepare
import numpy as np
from PIL import Image
onnx_model = onnx.load('trainednet.onnx')
tf_rep - prepare(onnx_model)
filepath = 'filepath.png'
img = Image.open(filepath).resize((224,224)).convert("RGB")
img = array(img).transpose((2,0,1))
img = np.expand_dims(img, 0)
img = img.astype(np.uint8)
probabilities = tf_rep.run(img)
print(probabilities)
При попытке использовать этот код для классификации того же набора тестов, кажется, правильно классифицирует изображения, но это очень медленный и зависает мой компьютер, так как в некоторых моментах он достигает высокого уровня использования памяти до 95 +%.
Я также заметил, что в командной строке при классификации он печатает:
2020-04-18 18:26:39.214286: W tensorflow/core/grappler/optimizers/meta_optimizer.cc:530] constant_folding failed: Deadline exceeded: constant_folding exceeded deadline., time = 486776.938ms.
Можно ли как-нибудь ускорить классификацию этого кода python?