亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

導出python中模型參數的方法

發布時間:2020-07-16 14:01:12 來源:億速云 閱讀:629 作者:清晨 欄目:編程語言

這篇文章主要介紹導出python中模型參數的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

模型的保存和讀取

1.tensorflow保存和讀取模型:tf.train.Saver()     .save()

#保存模型需要用到save函數
save(
    sess,
    save_path,
    global_step=None,
    latest_filename=None,
    meta_graph_suffix='meta',
    write_meta_graph=True,
    write_state=True
)
'''
sess: 保存模型要求必須有一個加載了計算圖的會話,而且所有變量必須已被初始化。
save_path: 模型保存路徑及保存名稱
global_step: 如果提供的話,這個數字會添加到save_path后面,用于區分不同訓練階段的結果
'''

示例:

#例子
import tensorflow as tf  
import numpy as np  
import os  
  
#用numpy產生數據  
x_data = np.linspace(-1,1,300)[:, np.newaxis] #轉置  
noise = np.random.normal(0,0.05, x_data.shape)  
y_data = np.square(x_data)-0.5+noise  
  
#輸入層  
x_ph = tf.placeholder(tf.float32, [None, 1])  
y_ph = tf.placeholder(tf.float32, [None, 1])  
  
#隱藏層  
w1 = tf.Variable(tf.random_normal([1,10]))  
b1 = tf.Variable(tf.zeros([1,10])+0.1)  
wx_plus_b1 = tf.matmul(x_ph, w1) + b1  
hidden = tf.nn.relu(wx_plus_b1)  
  
#輸出層  
w2 = tf.Variable(tf.random_normal([10,1]))  
b2 = tf.Variable(tf.zeros([1,1])+0.1)  
wx_plus_b2 = tf.matmul(hidden, w2) + b2  
y = wx_plus_b2  
  
#損失  
loss = tf.reduce_mean(tf.reduce_sum(tf.square(y_ph-y),reduction_indices=[1]))  
train_op = tf.train.GradientDescentOptimizer(0.1).minimize(loss)  
  
#保存模型對象saver  
saver = tf.train.Saver()  
  
#判斷模型保存路徑是否存在,不存在就創建  
if not os.path.exists('tmp/'):  
    os.mkdir('tmp/')  
  
#初始化  
with tf.Session() as sess:  
    if os.path.exists('tmp/checkpoint'):         #判斷模型是否存在  
        saver.restore(sess, 'tmp/model.ckpt')    #存在就從模型中恢復變量  
    else:  
        init = tf.global_variables_initializer() #不存在就初始化變量  
        sess.run(init)  
  
    for i in range(1000):  
        _,loss_value = sess.run([train_op,loss], feed_dict={x_ph:x_data, y_ph:y_data})  
        if(i%50==0):  
            save_path = saver.save(sess, 'tmp/model.ckpt')  
            print("迭代次數:%d , 訓練損失:%s"%(i, loss_value))

每調用一次保存操作會創建后3個數據文件并創建一個檢查點(checkpoint)文件,簡單理解就是權重等參數被保存到 .chkp.data 文件中,以字典的形式;圖和元數據被保存到 .chkp.meta 文件中,可以被 tf.train.import_meta_graph 加載到當前默認的圖。

2.keras保存和讀取模型

model.save(filepath),同時保存model和權重的

import numpy as np
from keras.datasets import mnist
from keras.utils import np_utils
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import SGD
# 載入數據
(x_train,y_train),(x_test,y_test) = mnist.load_data()
# (60000,28,28)
print('x_shape:',x_train.shape)
# (60000)
print('y_shape:',y_train.shape)
# (60000,28,28)->(60000,784)
x_train = x_train.reshape(x_train.shape[0],-1)/255.0
x_test = x_test.reshape(x_test.shape[0],-1)/255.0
# 換one hot格式
y_train = np_utils.to_categorical(y_train,num_classes=10)
y_test = np_utils.to_categorical(y_test,num_classes=10)
# 創建模型,輸入784個神經元,輸出10個神經元
model = Sequential([
        Dense(units=10,input_dim=784,bias_initializer='one',activation='softmax')
    ])
# 定義優化器
sgd = SGD(lr=0.2)
# 定義優化器,loss function,訓練過程中計算準確率
model.compile(
    optimizer = sgd,
    loss = 'mse',
    metrics=['accuracy'],
)
# 訓練模型
model.fit(x_train,y_train,batch_size=64,epochs=5)
# 評估模型
loss,accuracy = model.evaluate(x_test,y_test)
print('\ntest loss',loss)
print('accuracy',accuracy)
# 保存模型
model.save('model.h6')

以上是導出python中模型參數的方法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

宁国市| 漠河县| 夏邑县| 双辽市| 西盟| 雅江县| 南溪县| 汝州市| 上高县| 拜城县| 莱西市| 南充市| 彭水| 新巴尔虎右旗| 晋中市| 阜宁县| 即墨市| 呈贡县| 剑河县| 涿鹿县| 乌鲁木齐市| 定远县| 奉新县| 建昌县| 朝阳县| 玛沁县| 申扎县| 乐安县| 林西县| 凤冈县| 诸暨市| 汉中市| 砀山县| 九龙县| 遵化市| 嘉鱼县| 宜兰市| 大安市| 太康县| 织金县| 疏勒县|