Я хочу сравнить бета-версию USB Accelerator от Google с помощью функции time.time () Python.
Я начал с установки библиотеки времени выполнения Edge TPU. Я нашел процедуру на Google .
Затем я последовал методу, чтобы выполнить вывод с классификацией нейронной сети.
Я выполняю следующие команды:
cd /usr/local/lib/python3.5/dist-packages/edgetpu/demo
python3 classify_image.py \
--model ~/Downloads /mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite \
--label ~/Downloads/inat_bird_labels.txt \
--image ~/Downloads/parrot.jpg
Теперь я хочу протестировать этот пример, поэтому я пошел к classify_image.py и реализовал функцию time.time () библиотеки Python для измерения времени выполнения нейрона.
Вот изменения, которые я сделал:
def main():
parser = argparse.ArgumentParser()
parser.add_argument(
'--model', help='File path of Tflite model.', required=True)
parser.add_argument(
'--label', help='File path of label file.', required=True)
parser.add_argument(
'--image', help='File path of the image to be recognized.', required=True)
args = parser.parse_args()
print ("[ INFO ] Loading network files:")
print(args.model)
print ("[ INFO ] Loading image file:")
print(args.image)
print ("[ INFO ] Starting inference (5 iterations)")
print ("[ INFO ] Loading label file:")
print (args.label)
# Prepare labels.
labels = ReadLabelFile(args.label)
temps=0.0
print("[ INFO ] stard profiling")
print(".................................................")
for i in range(4):
# Initialize engine.
engine = ClassificationEngine(args.model)
# Run inference.
print("[ INFO ] Loading image in the model")
t1=time.time()
img = Image.open(args.image)
result=engine.ClassifyWithImage(img, threshold=0.1, top_k=5, resample=0)
t2=time.time()
temps=temps+(t2-t1)
print("[ INFO ] end profiling")
print(".................................................")
print("total inference time {} s:".format(temps))
print("Average running time of one iteration {} s:".format(temps/5.0))
print("Throughput: {} FPS".format(5.0/temps*1.0))
Результат - «Среднее время выполнения одной итерации 0,41750078201293944 с».
[ INFO ] Loading network files:
inception_v1_224_quant.tflite
[ INFO ] Loading image file:
/cat_W_3000_H_2000.jpg
[ INFO ] Starting inference (5 iterations)
[ INFO ] Loading label file:
/imagenet_labels.txt
[ INFO ] stard profiling
.................................................
[ INFO ] end profiling
.................................................
total inference time 2.0875039100646973 s:
Average running time of one iteration 0.41750078201293944 s:
Throughput: 2.3952050944158647 FPS
Когда я захотел проверить, верны ли мои результаты, я пошел по этой ссылке Google (официальный сайт USB Accelerator coarl beta от Google) и обнаружил, что для нейронной сети inception_v1 (224 * 224) они измеряют 3,6 мс, а я измеряю 417 мс.
Итак, мой вопрос: как я могу правильно оценить бета-версию USB Accelerator coarl от Google?