Почему CNN работает в python крайне медленно по сравнению с Matlab? - PullRequest
1 голос
/ 19 апреля 2020

Я обучил 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?

...