第一種儲存方式
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...