此筆記本(notebook)使用了 tf.keras,它是乙個 tensorflow 中用於構建和訓練模型的高階api,此外還使用了 tensorflow hub,乙個用於遷移學習的庫和平台。
from __future__ import absolute_import, division, print_function, unicode_literals
import numpy as np
import tensorflow as tf
import tensorflow_hub as hub
import tensorflow_datasets as tfds
# 將訓練集按照 6:4 的比例進行切割,從而最終我們將得到 15,000
# 個訓練樣本, 10,000 個驗證樣本以及 25,000 個測試樣本
train_validation_split = tfds.split.train.subsplit([6, 4])
(train_data, validation_data), test_data = tfds.load(
name="imdb_reviews",
split=(train_validation_split, tfds.split.test),
as_supervised=true)
第二步:構建模型
embedding = ""
hub_layer = hub.keraslayer(embedding, input_shape=,
dtype=tf.string, trainable=true)
model = tf.keras.sequential()
model.add(hub_layer)
model.add(tf.keras.layers.dense(16, activation='relu'))
model.add(tf.keras.layers.dense(1, activation='sigmoid'))
model.summary()
模型第一層使用 tensorflow hub 中名為 google/tf2-preview/gnews-swivel-20dim/1 的一種預訓練文字嵌入(text embedding)模型。 該模型將每一條影評(文字型,不定長)轉換為乙個向量(定長20)
除了可以用google/tf2-preview/gnews-swivel-20dim/1 外還可以用
模型第二層該定長輸出向量通過乙個有 16 個隱層單元的全連線層(dense
)進行管道傳輸。
模型第三層最後一層與單個輸出結點緊密相連。使用sigmoid
啟用函式,其函式值為介於 0 與 1 之間的浮點數,表示概率或置信水平。
第三步:定義損失函式和優化器訓練模型
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy'])
第四步:訓練模型
batchsize=512,epoch=20
history = model.fit(train_data.shuffle(10000).batch(512),
epochs=20,
validation_data=validation_data.batch(512),
verbose=1)
很奇怪,不是有15000個訓練樣本嗎?為什麼shuffle(10000)後面跟的引數是10000?這裡10000 是指詞典的長度是10000,具體請看
第五步:評估模型
損失值(loss)(乙個表示誤差的數字,值越低越好)與準確率(accuracy)。
results = model.evaluate(test_data.batch(512), verbose=2)
for name, value in zip(model.metrics_names, results):
print("%s: %.3f" % (name, value))
T SQL入門攻略之14 獲取DML語句的影響資訊
title t sql 入門攻略之 14 獲取dml語句的影響資訊 author wufeng4552 date 2010 07 29 首先把上節沒講完的講完 多列更新 update testbook setprice price 0.3,打折 remark 過時圖書 備註 where date 2...
SAML2 0入門指南
openid connect 協議入門指南 opensaml示例 saml在單點登入中大有用處 在saml協議中,一旦使用者身份被主 身份鑑別伺服器,identity provider,idp 認證過後,該使用者再去訪問其他在主站註冊過的應用 服務提供者,service providers,sp 時...
快速入門http2 0
自 想要了解乙個事物,首先就要知道它是什麼。簡單來說,http 2 超文字傳輸協議第2版,最初命名為http2.0 是http協議的第二個主要版本。http 2是http協議自1999年http1.1發布後的首個更新,主要基於spdy協議。http2.0的特點是 在不改動http語義 方法 狀態碼 ...