久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

學(xué)習(xí)TensorFlow,保存學(xué)習(xí)到的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)并調(diào)用

 雪柳花明 2017-03-17

深度學(xué)習(xí)中,,不管使用那種學(xué)習(xí)框架,,我們會(huì)遇到一個(gè)很重要的問(wèn)題,,那就是在訓(xùn)練完之后,,如何存儲(chǔ)學(xué)習(xí)到的深度網(wǎng)絡(luò)的參數(shù),?在測(cè)試時(shí),,如何調(diào)用這些網(wǎng)絡(luò)參數(shù),?針對(duì)這兩個(gè)問(wèn)題,本篇博文主要探索TensorFlow如何解決他們,?本篇博文分為三個(gè)部分,,第一是講解tensorflow相關(guān)的函數(shù),,第二是代碼例程,第三是運(yùn)行結(jié)果,。

一 tensorflow相關(guān)的函數(shù)

我們說(shuō)的這兩個(gè)功能主要由一個(gè)類(lèi)來(lái)完成,,class tf.train.Saver

[plain] view plain copy
在CODE上查看代碼片派生到我的代碼片
  1. saver = tf.train.Saver()  
  2. save_path = saver.save(sess, model_path)  
  3. load_path = saver.restore(sess, model_path)  
saver = tf.train.Saver() 由類(lèi)創(chuàng)建對(duì)象saver,用于保存和調(diào)用學(xué)習(xí)到的網(wǎng)絡(luò)參數(shù),,參數(shù)保存在checkpoints里

save_path = saver.save(sess, model_path) 保存學(xué)習(xí)到的網(wǎng)絡(luò)參數(shù)到model_path路徑中

load_path = saver.restore(sess, model_path) 調(diào)用model_path路徑中的保存的網(wǎng)絡(luò)參數(shù)到graph中


二 代碼例程

[python] view plain copy
在CODE上查看代碼片派生到我的代碼片
  1. ''''' 
  2. Save and Restore a model using TensorFlow. 
  3. This example is using the MNIST database of handwritten digits 
  4. (http://yann./exdb/mnist/) 
  5.  
  6. Author: Aymeric Damien 
  7. Project: https://github.com/aymericdamien/TensorFlow-Examples/ 
  8. '''  
  9.   
  10. # Import MINST data  
  11. from tensorflow.examples.tutorials.mnist import input_data  
  12. mnist = input_data.read_data_sets("/tmp/data/", one_hot=True)  
  13.   
  14. import tensorflow as tf  
  15.   
  16. # Parameters  
  17. learning_rate = 0.001  
  18. batch_size = 100  
  19. display_step = 1  
  20. model_path = "/home/lei/TensorFlow-Examples-master/examples/4_Utils/model.ckpt"  
  21.   
  22. # Network Parameters  
  23. n_hidden_1 = 256 # 1st layer number of features  
  24. n_hidden_2 = 256 # 2nd layer number of features  
  25. n_input = 784 # MNIST data input (img shape: 28*28)  
  26. n_classes = 10 # MNIST total classes (0-9 digits)  
  27.   
  28. # tf Graph input  
  29. x = tf.placeholder("float", [None, n_input])  
  30. y = tf.placeholder("float", [None, n_classes])  
  31.   
  32.   
  33. # Create model  
  34. def multilayer_perceptron(x, weights, biases):  
  35.     # Hidden layer with RELU activation  
  36.     layer_1 = tf.add(tf.matmul(x, weights['h1']), biases['b1'])  
  37.     layer_1 = tf.nn.relu(layer_1)  
  38.     # Hidden layer with RELU activation  
  39.     layer_2 = tf.add(tf.matmul(layer_1, weights['h2']), biases['b2'])  
  40.     layer_2 = tf.nn.relu(layer_2)  
  41.     # Output layer with linear activation  
  42.     out_layer = tf.matmul(layer_2, weights['out']) + biases['out']  
  43.     return out_layer  
  44.   
  45. # Store layers weight & bias  
  46. weights = {  
  47.     'h1': tf.Variable(tf.random_normal([n_input, n_hidden_1])),  
  48.     'h2': tf.Variable(tf.random_normal([n_hidden_1, n_hidden_2])),  
  49.     'out': tf.Variable(tf.random_normal([n_hidden_2, n_classes]))  
  50. }  
  51. biases = {  
  52.     'b1': tf.Variable(tf.random_normal([n_hidden_1])),  
  53.     'b2': tf.Variable(tf.random_normal([n_hidden_2])),  
  54.     'out': tf.Variable(tf.random_normal([n_classes]))  
  55. }  
  56.   
  57. # Construct model  
  58. pred = multilayer_perceptron(x, weights, biases)  
  59.   
  60. # Define loss and optimizer  
  61. cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(pred, y))  
  62. optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost)  
  63.   
  64. # Initializing the variables  
  65. init = tf.initialize_all_variables()  
  66.   
  67. # 'Saver' op to save and restore all the variables  
  68. saver = tf.train.Saver()  
  69.   
  70. # Running first session  
  71. print "Starting 1st session..."  
  72. with tf.Session() as sess:  
  73.     # Initialize variables  
  74.     sess.run(init)  
  75.   
  76.     # Training cycle  
  77.     for epoch in range(3):  
  78.         avg_cost = 0.  
  79.         total_batch = int(mnist.train.num_examples/batch_size)  
  80.         # Loop over all batches  
  81.         for i in range(total_batch):  
  82.             batch_x, batch_y = mnist.train.next_batch(batch_size)  
  83.             # Run optimization op (backprop) and cost op (to get loss value)  
  84.             _, c = sess.run([optimizer, cost], feed_dict={x: batch_x,  
  85.                                                           y: batch_y})  
  86.             # Compute average loss  
  87.             avg_cost += c / total_batch  
  88.         # Display logs per epoch step  
  89.         if epoch % display_step == 0:  
  90.             print "Epoch:", '%04d' % (epoch+1), "cost=", \  
  91.                 "{:.9f}".format(avg_cost)  
  92.     print "First Optimization Finished!"  
  93.   
  94.     # Test model  
  95.     correct_prediction = tf.equal(tf.argmax(pred, 1), tf.argmax(y, 1))  
  96.     # Calculate accuracy  
  97.     accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))  
  98.     print "Accuracy:", accuracy.eval({x: mnist.test.images, y: mnist.test.labels})  
  99.   
  100.     # Save model weights to disk  
  101.     save_path = saver.save(sess, model_path)  
  102.     print "Model saved in file: %s" % save_path  
  103.   
  104. # Running a new session  
  105. print "Starting 2nd session..."  
  106. with tf.Session() as sess:  
  107.     # Initialize variables  
  108.     sess.run(init)  
  109.   
  110.     # Restore model weights from previously saved model  
  111.     load_path = saver.restore(sess, model_path)  
  112.     print "Model restored from file: %s" % save_path  
  113.   
  114.     # Resume training  
  115.     for epoch in range(7):  
  116.         avg_cost = 0.  
  117.         total_batch = int(mnist.train.num_examples / batch_size)  
  118.         # Loop over all batches  
  119.         for i in range(total_batch):  
  120.             batch_x, batch_y = mnist.train.next_batch(batch_size)  
  121.             # Run optimization op (backprop) and cost op (to get loss value)  
  122.             _, c = sess.run([optimizer, cost], feed_dict={x: batch_x,  
  123.                                                           y: batch_y})  
  124.             # Compute average loss  
  125.             avg_cost += c / total_batch  
  126.         # Display logs per epoch step  
  127.         if epoch % display_step == 0:  
  128.             print "Epoch:", '%04d' % (epoch + 1), "cost=", \  
  129.                 "{:.9f}".format(avg_cost)  
  130.     print "Second Optimization Finished!"  
  131.   
  132.     # Test model  
  133.     correct_prediction = tf.equal(tf.argmax(pred, 1), tf.argmax(y, 1))  
  134.     # Calculate accuracy  
  135.     accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))  
  136.     print "Accuracy:", accuracy.eval(  
  137.         {x: mnist.test.images, y: mnist.test.labels})  


三 運(yùn)行結(jié)果



參考資料:

https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/4_Utils/save_restore_model.py

https://www./versions/r0.9/api_docs/Python/state_ops.html#Saver

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多