網路結構儲存為pb 二)

2021-08-16 18:50:32 字數 3164 閱讀 1804

第一種儲存方式

import tensorflow as tf

from tensorflow.python.framework import graph_util

logdir='./checkpoints/'

with tf.variable_scope('conv'):

w=tf.get_variable('w',[2,2],tf.float32,initializer=tf.random_normal_initializer)

b=tf.get_variable('b',[2],tf.float32,initializer=tf.random_normal_initializer)

sess=tf.interactivesession()

tf.global_variables_initializer().run() # 初始化所有變數

# tf.train.write_graph(tf.get_default_graph(),logdir,'expert-graph.pb',false)

constant_graph = graph_util.convert_variables_to_constants(sess, sess.graph_def, ["conv/w"])

with tf.gfile.fastgfile(logdir+'expert-graph.pb', mode='wb') as f:

f.write(constant_graph.serializetostring())

sess.close()

下面這種有佔位符的儲存形式

import tensorflow as tf

from tensorflow.python.framework import graph_util

logdir='./checkpoints/'#模型儲存路徑為當前路徑下的checkpoints資料夾下

# logdir='./'#模型儲存路徑為當前路徑

# #

# v = tf.get_variable("v",shape=[1],dtype=tf.int32,initializer=tf.zeros_initializer())

# # with tf.session(graph=g1) as sess:

# tf.global_variables_initializer().run()

# with tf.variable_scope("",reuse=true):

# print(sess.run(tf.get_variable("v",dtype=tf.int32)))

# with tf.variable_scope('conv'):

g1 = tf.graph()

with g1.as_default():

x = tf.placeholder(name='input', dtype=tf.float32,

shape=[none, 3])

w=tf.get_variable('w',[2,2],tf.float32,initializer=tf.random_normal_initializer)

b=tf.get_variable('b',[2],tf.float32,initializer=tf.random_normal_initializer)

with tf.session(graph=g1) as sess:

tf.global_variables_initializer().run()

# sess=tf.interactivesession()

# tf.global_variables_initializer().run() # 初始化所有變數

# tf.train.write_graph(tf.get_default_graph(),logdir,'expert-graph.pb',false)

# constant_graph = graph_util.convert_variables_to_constants(sess, sess.graph_def, ["w","b"])

constant_graph = tf.get_default_graph().as_graph_def()#這種

# constant_graph = graph_util.convert_variables_to_constants(sess, sess.graph_def, ["w","b"])

with tf.gfile.fastgfile(logdir+'expert-graph.pb', mode='wb') as f:

f.write(constant_graph.serializetostring())

sess.close()

pb的讀取

import tensorflow as tf

from tensorflow.python.framework import graph_util

import numpy as np

logdir='./checkpoints/'

output_graph_path = logdir+'expert-graph.pb'

with tf.session() as sess:

tf.global_variables_initializer().run()

output_graph_def = tf.graphdef()

with open(output_graph_path, "rb") as f:

output_graph_def.parsefromstring(f.read())

_ = tf.import_graph_def(output_graph_def, name="")

input_x = sess.graph.get_tensor_by_name("input:0")

print(input_x)

y=input_x

out=sess.run(y,)

print(out[:10])#取出out的前10行,

w = sess.graph.get_tensor_by_name("w:0")

print(w)

java讀取文字資料,將資料儲存為二維陣列。

利用bufferedreader和fileinputstream都可以實現讀取文字資料,不同的是bufferedreader適用於讀取文字較小的場景,因其會將檔案所有行都存入記憶體中。1.bufferedreader實現讀取文字資料,並儲存為二維陣列。private static double ge...

深度學習(二) 常用神經網路結構

2.記憶網路 3.圖網路 特點 每一層神經元接收前一層神經元的輸出,相當於有向無環圖 實現方式 前饋網路包括全連線前饋網路和卷積神經網路 a.多個全連線層可以從不同角度提取特徵 b.全連線層作為輸出層有分類和數值 的功能 也經常用於卷積神經網路。缺點 權重多,計算量大。應用 所有的神經網路均可以利用...

第二章 神經元模型和網路結構

2.2 原理與例項 神經元模型 單輸入 a f wp b f為傳輸函式,w為權值,b為偏置,a為輸出.常用的三種傳輸函式 硬極限 hardlim n 對稱硬極限 hardlims n 線性 purelin n 飽和線性 satlin n 對稱飽和線性 satlins n 正線性 poslin n l...