# 单例模式
class Singleton(object):
def __new__(cls, *args, **kwargs):
if not hasattr(cls, '_instance'):
cls._instance = super(Singleton, cls).__new__(cls, *args, **kwargs)
cls._instance.detection_graph = tf.Graph()
with cls._instance.detection_graph.as_default():
od_graph_def = tf.GraphDef()
with tf.gfile.GFile(PATH_TO_CKPT, 'rb') as fid:
serialized_graph = fid.read()
od_graph_def.ParseFromString(serialized_graph)
tf.import_graph_def(od_graph_def, name='')
with cls._instance.detection_graph.as_default():
cls._instance.tfSec = {}
for ip in ips:
cls._instance.tfSec[ip] = tf.Session("grpc://" + ip, graph=cls._instance.detection_graph)
return cls._instance
class Foo(Singleton):
pass
调用单例模式
detection_graph = Foo().detection_graph # 调用构造图
sess = Foo().tfSec.get(ip) # 调用session