91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Tensorflow實現在訓練好的模型上進行測試

發布時間:2020-09-18 11:51:24 來源:腳本之家 閱讀:171 作者:非典型廢言 欄目:開發技術

Tensorflow可以使用訓練好的模型對新的數據進行測試,有兩種方法:第一種方法是調用模型和訓練在同一個py文件中,中情況比較簡單;第二種是訓練過程和調用模型過程分別在兩個py文件中。本文將講解第二種方法。

模型的保存

tensorflow提供可保存訓練模型的接口,使用起來也不是很難,直接上代碼講解:

#網絡結構
w1 = tf.Variable(tf.truncated_normal([in_units, h2_units], stddev=0.1))
b1 = tf.Variable(tf.zeros([h2_units]))
y = tf.nn.softmax(tf.matmul(w1, x) + b1)
tf.add_to_collection('network-output', y)

x = tf.placeholder(tf.float32, [None, in_units], name='x')
y_ = tf.placeholder(tf.float32, [None, 10], name='y_')
#損失函數與優化函數
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
train_step = tf.train.AdamOptimizer(rate).minimize(cross_entropy)

saver = tf.train.Saver()
with tf.Session() as sess: 
    sess.run(init) 
    saver.save(sess,"save/model.ckpt") 
    train_step.run({x: train_x, y_: train_y})

以上代碼就完成了模型的保存,值得注意的是下面這行代碼

tf.add_to_collection('network-output', y)

這行代碼保存了神經網絡的輸出,這個在后面使用導入模型過程中起到關鍵作用。

模型的導入

模型訓練并保存后就可以導入來評估模型在測試集上的表現,網上很多文章只用簡單的四則運算來做例子,讓人看的頭大。還是先上代碼:

with tf.Session() as sess:
  saver = tf.train.import_meta_graph('./model.ckpt.meta')
  saver.restore(sess, './model.ckpt')# .data文件
  pred = tf.get_collection('network-output')[0]

  graph = tf.get_default_graph()
  x = graph.get_operation_by_name('x').outputs[0]
  y_ = graph.get_operation_by_name('y_').outputs[0]

  y = sess.run(pred, feed_dict={x: test_x, y_: test_y})

講解一下關鍵的代碼,首先是pred = tf.get_collection('pred_network')[0],這行代碼獲得訓練過程中網絡輸出的“接口”,簡單理解就是,通過tf.get_collection() 這個方法獲取了整個網絡結構。獲得網絡結構后我們就需要喂它對應的數據y = sess.run(pred, feed_dict={x: test_x, y_: test_y}) 在訓練過程中我們的輸入是

x = tf.placeholder(tf.float32, [None, in_units], name='x')
y_ = tf.placeholder(tf.float32, [None, 10], name='y_')

因此導入模型后所需的輸入也要與之對應可使用以下代碼獲得:

  x = graph.get_operation_by_name('x').outputs[0]
  y_ = graph.get_operation_by_name('y_').outputs[0]

使用模型的最后一步就是輸入測試集,然后按照訓練好的網絡進行評估

  sess.run(pred, feed_dict={x: test_x, y_: test_y})

理解下這行代碼,sess.run() 的函數原型為

run(fetches, feed_dict=None, options=None, run_metadata=None)

Tensorflow對 feed_dict 執行fetches操作,因此在導入模型后的運算就是,按照訓練的網絡計算測試輸入的數據。

以上這篇Tensorflow實現在訓練好的模型上進行測試就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德阳市| 那坡县| 日土县| 宜黄县| 民勤县| 永丰县| 南和县| 曲周县| 浠水县| 西盟| 鱼台县| 扎赉特旗| 棋牌| 报价| 溧阳市| 德兴市| 兴宁市| 平顺县| 鹰潭市| 五大连池市| 房山区| 泊头市| 东城区| 门源| 张家川| 永春县| 延津县| 平江县| 巴东县| 沐川县| 乌审旗| 隆昌县| 湖南省| 禄劝| 福建省| 女性| 沅江市| 昭苏县| 云和县| 射洪县| 峨眉山市|