python: better Python 3 support

This commit is contained in:
Alexander Alekhin 2018-05-11 13:29:28 +03:00
parent df02fe0615
commit 78f205ffa5
7 changed files with 30 additions and 17 deletions

View File

@ -1,10 +1,14 @@
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

View File

@ -1,3 +1,4 @@
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):
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:
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()

View File

@ -1,3 +1,4 @@
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):
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:
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()

View File

@ -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):

View File

@ -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):

View File

@ -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"])

View File

@ -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