|
503 | 503 | },
|
504 | 504 | {
|
505 | 505 | "cell_type": "code",
|
506 |
| - "execution_count": 33, |
| 506 | + "execution_count": 37, |
507 | 507 | "metadata": {},
|
508 | 508 | "outputs": [
|
509 | 509 | {
|
|
514 | 514 | "INFO:tensorflow:The specified SavedModel has no variables; no checkpoints were restored.\n",
|
515 | 515 | "INFO:tensorflow:Running against TensorRT version 5.1.2\n",
|
516 | 516 | "Calibrate model on calibration data...\n",
|
517 |
| - "Calibration accuracy: 82.03%\n" |
| 517 | + "Calibration accuracy: 75.38%\n" |
518 | 518 | ]
|
519 | 519 | }
|
520 | 520 | ],
|
|
535 | 535 | " precision_mode='INT8')\n",
|
536 | 536 | "\n",
|
537 | 537 | "#Then calibrate it with 2 batchs of examples\n",
|
538 |
| - "N_runs=2\n", |
| 538 | + "N_runs=100\n", |
539 | 539 | "with tf.Session(graph=tf.Graph()) as sess:\n",
|
540 | 540 | " \n",
|
541 | 541 | " output_node = tf.import_graph_def(\n",
|
|
558 | 558 | " for _ in range(N_runs):\n",
|
559 | 559 | " image_data = sess.run(next_element) \n",
|
560 | 560 | " img = image_data[0]\n",
|
561 |
| - " label = image_data[1]\n", |
| 561 | + " label = image_data[1].squeeze()\n", |
562 | 562 | " output = sess.run(output_node[0].outputs[0], feed_dict={\"trt/input_tensor:0\": img})\n",
|
563 | 563 | " prediction = np.argmax(output, axis=1)\n",
|
564 | 564 | " num_hits += np.sum(prediction == label)\n",
|
|
588 | 588 | },
|
589 | 589 | {
|
590 | 590 | "cell_type": "code",
|
591 |
| - "execution_count": 35, |
| 591 | + "execution_count": 38, |
592 | 592 | "metadata": {},
|
593 | 593 | "outputs": [
|
594 | 594 | {
|
|
598 | 598 | "traceback": [
|
599 | 599 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
600 | 600 | "\u001b[0;31mFailedPreconditionError\u001b[0m Traceback (most recent call last)",
|
601 |
| - "\u001b[0;32m<ipython-input-35-37c230aa2655>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m#Create Int8 inference model from the calibration graph and write to a saved session\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mtrt_int8_calibrated_graph\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtrt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcalib_graph_to_infer_graph\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtrt_int8_calib_graph\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m output_node = tf.import_graph_def(\n\u001b[1;32m 4\u001b[0m \u001b[0mtrt_int8_calibrated_graph\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mreturn_elements\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'softmax_tensor:0'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
| 601 | + "\u001b[0;32m<ipython-input-38-774a4b39c75b>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m#Create Int8 inference model from the calibration graph and write to a saved session\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mtrt_int8_calibrated_graph\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtrt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcalib_graph_to_infer_graph\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtrt_int8_calib_graph\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m output_node = tf.import_graph_def(\n\u001b[1;32m 4\u001b[0m \u001b[0mtrt_int8_calibrated_graph\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mreturn_elements\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'softmax_tensor:0'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
602 | 602 | "\u001b[0;32m/usr/local/lib/python3.5/dist-packages/tensorflow/contrib/tensorrt/python/trt_convert.py\u001b[0m in \u001b[0;36mcalib_graph_to_infer_graph\u001b[0;34m(calibration_graph_def, is_dynamic_op)\u001b[0m\n\u001b[1;32m 415\u001b[0m \u001b[0;31m# pylint: disable=protected-access\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 416\u001b[0m raise _impl._make_specific_exception(None, None, \";\".join(msg[1:]),\n\u001b[0;32m--> 417\u001b[0;31m int(msg[0]))\n\u001b[0m\u001b[1;32m 418\u001b[0m \u001b[0;31m# pylint: enable=protected-access\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 419\u001b[0m \u001b[0moutput_graph_def\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgraph_pb2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mGraphDef\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
|
603 | 603 | "\u001b[0;31mFailedPreconditionError\u001b[0m: Need to run graph with calibration data first!"
|
604 | 604 | ]
|
|
638 | 638 | " while True: \n",
|
639 | 639 | " image_data = sess.run(next_element) \n",
|
640 | 640 | " img = image_data[0]\n",
|
641 |
| - " label = image_data[1]\n", |
| 641 | + " label = image_data[1].squeeze()\n", |
642 | 642 | " output = sess.run(['softmax_tensor:0'], feed_dict={\"input_tensor:0\": img})\n",
|
643 | 643 | " prediction = np.argmax(output[0], axis=1)\n",
|
644 | 644 | " num_hits += np.sum(prediction == label)\n",
|
|
0 commit comments