好了,上**了。敲黑板!
import keras
import numpy as np
from keras.utils import plot_model
import matplotlib.pyplot as plt
# 第乙個網路模型
# 輸入為16維
input1 = keras.layers.input(shape=(16,))
layer_1 = keras.layers.dense(8, activation='relu')(input1)
layer_2 = keras.layers.dense(1, activation='relu')(layer_1)
# 第二個網路模型
# 輸入為32維
input2 = keras.layers.input(shape=(32,))
layer_3 = keras.layers.dense(8, activation='relu')(input2)
layer_4 = keras.layers.dense(1, activation='relu')(layer_3)
# 模型結果求和(也有求差、求積、求商......)
add = keras.layers.add()([layer_2, layer_4])
# 最後以4維的向量輸出
out = keras.layers.dense(4)(add)
# 利用model搭建模型
model = keras.models.model(inputs=[input1, input2], outputs=out)
# 編譯模型
model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])
# 輸入和輸出資料
x1 = np.random.random((1000, 16))
x2 = np.random.random((1000, 32))
y = np.random.randint(10, size=(1000, 4))
# 訓練模型,並儲存訓練過程的細節
history = model.fit([x1, x2], y, batch_size=32, epochs=100, verbose=1,
callbacks=none, validation_split=0.1,
validation_data=none, shuffle=true,
class_weight=none, sample_weight=none,
initial_epoch=0)
# 列印模型資訊
model.summary()
# 將模型儲存為影象檔案
plot_model(model, show_shapes = true, show_layer_names = true, to_file = 'merge.png')
# 繪製訓練影象
plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])
plt.title('model loss')
plt.ylabel('loss')
plt.xlabel('epochs')
plt.legend(['train', 'validate'], loc='upper right')
plt.show()
這是乙份簡易的**,實際我的程式很長,不管是我神經網路的層數,輸入的個數,輸入和輸出的資料,都要比這個模型複雜,這個僅僅作為參考,用keras搭建乙個神經網路真的只需要30秒經過100次的整體訓練,得到的結果如下!
揭秘Keras推薦系統如何建立模型 獲取使用者愛好
你是否有過這樣的經歷?當你在亞馬遜 瀏覽一些書籍,或者購買過一些書籍後,你的偏好就會被系統學到,系統會基於一些假設為你推薦相關書目。為什麼系統會知道,在這背後又藏著哪些秘密呢?推推薦系統可以從百萬甚至上億的內容或商品中把有用的東西高效地顯示給使用者,這樣可以為使用者節省很多自行查詢的時間,也可以提示...
keras評估模型
當建立好模型並且用來訓練之後,如何評估模型的好壞,準確度又如何呢?三種常用方法 1 使用自動驗證方法 在 fit 函式中增加乙個validation split引數,該引數用來進行驗證效果 該引數可以自由設定,一般設定為20 或者30 也就是測試集佔總資料集的20 或者30 的資料用來進行驗證,其餘...
keras載入模型
說明 該程式是乙個包含兩個隱藏層的神經網路。演示如何載入乙個儲存好的模型。資料集 mnist from future import print function python提供了 future 模組,把下乙個新版本的特性匯入到當前版本,於是我們就可以在當前版本中測試一些新版本的特性。import ...