Commit 78f205ff authored by Alexander Alekhin's avatar Alexander Alekhin

python: better Python 3 support

parent df02fe06
from __future__ import print_function from __future__ import print_function
import sys
import argparse import argparse
import cv2 as cv import cv2 as cv
import tensorflow as tf import tensorflow as tf
import numpy as np import numpy as np
import struct import struct
if sys.version_info > (3,):
long = int
from tensorflow.python.tools import optimize_for_inference_lib from tensorflow.python.tools import optimize_for_inference_lib
from tensorflow.tools.graph_transforms import TransformGraph from tensorflow.tools.graph_transforms import TransformGraph
from tensorflow.core.framework.node_def_pb2 import NodeDef from tensorflow.core.framework.node_def_pb2 import NodeDef
......
from __future__ import print_function
from abc import ABCMeta, abstractmethod from abc import ABCMeta, abstractmethod
import numpy as np import numpy as np
import sys import sys
...@@ -156,7 +157,7 @@ class DnnCaffeModel(Framework): ...@@ -156,7 +157,7 @@ class DnnCaffeModel(Framework):
class ClsAccEvaluation: class ClsAccEvaluation:
log = file log = sys.stdout
img_classes = {} img_classes = {}
batch_size = 0 batch_size = 0
...@@ -198,26 +199,26 @@ class ClsAccEvaluation: ...@@ -198,26 +199,26 @@ class ClsAccEvaluation:
fw_accuracy.append(100 * correct_answers[i] / float(samples_handled)) fw_accuracy.append(100 * correct_answers[i] / float(samples_handled))
frameworks_out.append(out) frameworks_out.append(out)
inference_time[i] += end - start inference_time[i] += end - start
print >> self.log, samples_handled, 'Accuracy for', frameworks[i].get_name() + ':', fw_accuracy[i] print(samples_handled, 'Accuracy for', frameworks[i].get_name() + ':', fw_accuracy[i], file=self.log)
print >> self.log, "Inference time, ms ", \ print("Inference time, ms ", \
frameworks[i].get_name(), inference_time[i] / samples_handled * 1000 frameworks[i].get_name(), inference_time[i] / samples_handled * 1000, file=self.log)
for i in range(1, len(frameworks)): for i in range(1, len(frameworks)):
log_str = frameworks[0].get_name() + " vs " + frameworks[i].get_name() + ':' log_str = frameworks[0].get_name() + " vs " + frameworks[i].get_name() + ':'
diff = np.abs(frameworks_out[0] - frameworks_out[i]) diff = np.abs(frameworks_out[0] - frameworks_out[i])
l1_diff = np.sum(diff) / diff.size l1_diff = np.sum(diff) / diff.size
print >> self.log, samples_handled, "L1 difference", log_str, l1_diff print(samples_handled, "L1 difference", log_str, l1_diff, file=self.log)
blobs_l1_diff[i] += l1_diff blobs_l1_diff[i] += l1_diff
blobs_l1_diff_count[i] += 1 blobs_l1_diff_count[i] += 1
if np.max(diff) > blobs_l_inf_diff[i]: if np.max(diff) > blobs_l_inf_diff[i]:
blobs_l_inf_diff[i] = np.max(diff) blobs_l_inf_diff[i] = np.max(diff)
print >> self.log, samples_handled, "L_INF difference", log_str, blobs_l_inf_diff[i] print(samples_handled, "L_INF difference", log_str, blobs_l_inf_diff[i], file=self.log)
self.log.flush() self.log.flush()
for i in range(1, len(blobs_l1_diff)): for i in range(1, len(blobs_l1_diff)):
log_str = frameworks[0].get_name() + " vs " + frameworks[i].get_name() + ':' log_str = frameworks[0].get_name() + " vs " + frameworks[i].get_name() + ':'
print >> self.log, 'Final l1 diff', log_str, blobs_l1_diff[i] / blobs_l1_diff_count[i] print('Final l1 diff', log_str, blobs_l1_diff[i] / blobs_l1_diff_count[i], file=self.log)
if __name__ == "__main__": if __name__ == "__main__":
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
......
from __future__ import print_function
from abc import ABCMeta, abstractmethod from abc import ABCMeta, abstractmethod
import numpy as np import numpy as np
import sys import sys
...@@ -145,7 +146,7 @@ class PASCALDataFetch(DatasetImageFetch): ...@@ -145,7 +146,7 @@ class PASCALDataFetch(DatasetImageFetch):
class SemSegmEvaluation: class SemSegmEvaluation:
log = file log = sys.stdout
def __init__(self, log_path,): def __init__(self, log_path,):
self.log = open(log_path, 'w') self.log = open(log_path, 'w')
...@@ -174,28 +175,28 @@ class SemSegmEvaluation: ...@@ -174,28 +175,28 @@ class SemSegmEvaluation:
pix_acc, mean_acc, miou = get_metrics(conf_mats[i]) pix_acc, mean_acc, miou = get_metrics(conf_mats[i])
name = frameworks[i].get_name() name = frameworks[i].get_name()
print >> self.log, samples_handled, 'Pixel accuracy, %s:' % name, 100 * pix_acc print(samples_handled, 'Pixel accuracy, %s:' % name, 100 * pix_acc, file=self.log)
print >> self.log, samples_handled, 'Mean accuracy, %s:' % name, 100 * mean_acc print(samples_handled, 'Mean accuracy, %s:' % name, 100 * mean_acc, file=self.log)
print >> self.log, samples_handled, 'Mean IOU, %s:' % name, 100 * miou print(samples_handled, 'Mean IOU, %s:' % name, 100 * miou, file=self.log)
print >> self.log, "Inference time, ms ", \ print("Inference time, ms ", \
frameworks[i].get_name(), inference_time[i] / samples_handled * 1000 frameworks[i].get_name(), inference_time[i] / samples_handled * 1000, file=self.log)
for i in range(1, len(frameworks)): for i in range(1, len(frameworks)):
log_str = frameworks[0].get_name() + " vs " + frameworks[i].get_name() + ':' log_str = frameworks[0].get_name() + " vs " + frameworks[i].get_name() + ':'
diff = np.abs(frameworks_out[0] - frameworks_out[i]) diff = np.abs(frameworks_out[0] - frameworks_out[i])
l1_diff = np.sum(diff) / diff.size l1_diff = np.sum(diff) / diff.size
print >> self.log, samples_handled, "L1 difference", log_str, l1_diff print(samples_handled, "L1 difference", log_str, l1_diff, file=self.log)
blobs_l1_diff[i] += l1_diff blobs_l1_diff[i] += l1_diff
blobs_l1_diff_count[i] += 1 blobs_l1_diff_count[i] += 1
if np.max(diff) > blobs_l_inf_diff[i]: if np.max(diff) > blobs_l_inf_diff[i]:
blobs_l_inf_diff[i] = np.max(diff) blobs_l_inf_diff[i] = np.max(diff)
print >> self.log, samples_handled, "L_INF difference", log_str, blobs_l_inf_diff[i] print(samples_handled, "L_INF difference", log_str, blobs_l_inf_diff[i], file=self.log)
self.log.flush() self.log.flush()
for i in range(1, len(blobs_l1_diff)): for i in range(1, len(blobs_l1_diff)):
log_str = frameworks[0].get_name() + " vs " + frameworks[i].get_name() + ':' log_str = frameworks[0].get_name() + " vs " + frameworks[i].get_name() + ':'
print >> self.log, 'Final l1 diff', log_str, blobs_l1_diff[i] / blobs_l1_diff_count[i] print('Final l1 diff', log_str, blobs_l1_diff[i] / blobs_l1_diff_count[i], file=self.log)
if __name__ == "__main__": if __name__ == "__main__":
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
......
...@@ -206,6 +206,8 @@ class table(object): ...@@ -206,6 +206,8 @@ class table(object):
cell.width = len(max(cell.text, key = lambda line: len(line))) cell.width = len(max(cell.text, key = lambda line: len(line)))
def reformatTextValue(self, value): def reformatTextValue(self, value):
if sys.version_info > (3,): # PY3 fix
unicode = str
if isinstance(value, str): if isinstance(value, str):
vstr = value vstr = value
elif isinstance(value, unicode): elif isinstance(value, unicode):
......
...@@ -7,6 +7,10 @@ import os.path ...@@ -7,6 +7,10 @@ import os.path
import sys import sys
from xml.dom.minidom import parse from xml.dom.minidom import parse
if sys.version_info > (3,):
long = int
def cmp(a, b): return (a>b)-(a<b)
class TestInfo(object): class TestInfo(object):
def __init__(self, xmlnode): def __init__(self, xmlnode):
......
...@@ -335,6 +335,7 @@ if __name__ == "__main__": ...@@ -335,6 +335,7 @@ if __name__ == "__main__":
print(cfg.strip()) print(cfg.strip())
print('=' * 80) print('=' * 80)
ABIs = None # make flake8 happy
exec(compile(cfg, cpath, 'exec')) exec(compile(cfg, cpath, 'exec'))
log.info("Android NDK path: %s", os.environ["ANDROID_NDK"]) log.info("Android NDK path: %s", os.environ["ANDROID_NDK"])
......
...@@ -79,7 +79,7 @@ if __name__ == '__main__': ...@@ -79,7 +79,7 @@ if __name__ == '__main__':
img = cv.imread(fn, 0) img = cv.imread(fn, 0)
if img is None: if img is None:
print('Failed to load fn1:', fn1) print('Failed to load file:', fn)
sys.exit(1) sys.exit(1)
img = np.float32(img)/255.0 img = np.float32(img)/255.0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment