這篇文章主要為大家展示了tensorflow 20如何搭網(wǎng)絡(luò),導(dǎo)出模型和運行模型,內(nèi)容簡而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。
成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),梓潼企業(yè)網(wǎng)站建設(shè),梓潼品牌網(wǎng)站建設(shè),網(wǎng)站定制,梓潼網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,梓潼網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。概述
以前自己都利用別人搭好的工程,修改過來用,很少把模型搭建、導(dǎo)出模型、加載模型運行走一遍,搞了一遍才知道這個事情也不是那么簡單的。
搭建模型和導(dǎo)出模型
參考《TensorFlow固化模型》,導(dǎo)出固化的模型有兩種方式.
方式1:導(dǎo)出pb圖結(jié)構(gòu)和ckpt文件,然后用 freeze_graph 工具凍結(jié)生成一個pb(包含結(jié)構(gòu)和參數(shù))
在我的代碼里測試了生成pb圖結(jié)構(gòu)和ckpt文件,但是沒接著往下走,感覺有點麻煩。我用的是第二種方法。
注意我這里只在最后保存了一次ckpt,實際應(yīng)該在訓(xùn)練中每隔一段時間就保存一次的。
saver = tf.train.Saver(max_to_keep=5) #tf.train.write_graph(session.graph_def, FLAGS.model_dir, "nn_model.pbtxt", as_text=True) with tf.Session() as sess: sess.run(tf.global_variables_initializer()) max_step = 2000 for i in range(max_step): batch = mnist.train.next_batch(50) if i % 100 == 0: train_accuracy = accuracy.eval(feed_dict={ x: batch[0], y_: batch[1], keep_prob: 1.0}) print('step %d, training accuracy %g' % (i, train_accuracy)) train_step.run(feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5}) print('test accuracy %g' % accuracy.eval(feed_dict={ x: mnist.test.images, y_: mnist.test.labels, keep_prob: 1.0})) # 保存pb和ckpt print('save pb file and ckpt file') tf.train.write_graph(sess.graph_def, graph_location, "graph.pb",as_text=False) checkpoint_path = os.path.join(graph_location, "model.ckpt") saver.save(sess, checkpoint_path, global_step=max_step)