我是初學者 參考
1.匯入tf.keras
tensorflow2推薦使用keras構建網路,常見的神經網路都包含在keras.layer中(最新的tf.keras的版本可能和keras不同)
import tensorflow as tf
from tensorflow.keras import layers
print(tf.__version__)
print(tf.keras.__version__)
2.構建簡單模型
2.1模型堆疊
最常見的模型型別是層的堆疊:tf.keras.sequential 模型
model = tf.keras.sequential()
model.add(layers.dense(32, activation='relu'))
model.add(layers.dense(32, activation='relu'))
model.add(layers.dense(10, activation='softmax'))
2.2網路配置
tf.keras.layers中網路配置:
activation:設定層的啟用函式。此引數由內建函式的名稱指定,或指定為可呼叫物件。預設情況下,系統不會應用任何啟用函式。
kernel_initializer 和 bias_initializer:建立層權重(核和偏差)的初始化方案。此引數是乙個名稱或可呼叫物件,預設為 「glorot uniform」 初始化器。
kernel_regularizer 和 bias_regularizer:應用層權重(核和偏差)的正則化方案,例如 l1 或 l2 正則化。預設情況下,系統不會應用正則化函式。
layers.dense(32, activation='sigmoid')
layers.dense(32, activation=tf.sigmoid)
layers.dense(32, kernel_initializer='orthogonal')
layers.dense(32, kernel_initializer=tf.keras.initializers.glorot_normal)
layers.dense(32, kernel_regularizer=tf.keras.regularizers.l2(0.01))
layers.dense(32, kernel_regularizer=tf.keras.regularizers.l1(0.01))
3.訓練和評估
3.1設定訓練流程
構建好模型後,通過呼叫 compile 方法配置該模型的學習流程:
model = tf.keras.sequential()
model.add(layers.dense(32, activation=『relu』))
model.add(layers.dense(32, activation=『relu』))
model.add(layers.dense(10, activation=『softmax』))
model.compile(optimizer=tf.keras.optimizers.adam(0.001),
loss=tf.keras.losses.categorical_crossentropy,
metrics=[tf.keras.metrics.categorical_accuracy])
3.2輸入numpy資料
import numpy as np
train_x = np.random.random((1000, 72))
train_y = np.random.random((1000, 10))
val_x = np.random.random((200, 72))
val_y = np.random.random((200, 10))
model.fit(train_x, train_y, epochs=10, batch_size=100,
validation_data=(val_x, val_y))
``3.3tf.data輸入資料
dataset = tf.data.dataset.from_tensor_slices((train_x, train_y))
dataset = dataset.batch(32)
dataset = dataset.repeat()
val_dataset = tf.data.dataset.from_tensor_slices((val_x, val_y))
val_dataset = val_dataset.batch(32)
val_dataset = val_dataset.repeat()
model.fit(dataset, epochs=10, steps_per_epoch=30,
validation_data=val_dataset, validation_steps=3)`
3.4評估與**
test_x = np.random.random((1000, 72))
test_y = np.random.random((1000, 10))
model.evaluate(test_x, test_y, batch_size=32)
test_data = tf.data.dataset.from_tensor_slices((test_x, test_y))
test_data = test_data.batch(32).repeat()
model.evaluate(test_data, steps=30)
result = model.predict(test_x, batch_size=32)
print(result)
result[0]就是輸出y的概率
model.evaluate 是比較**值和實際值的差值
tensorflow2 0的簡單訓練(1)
tf的張量改變可以使用python的方式 x tf.ones 6,6 x x 3 print x tf.tensor 4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.shape 6,6 dtype flo...
tensorflow2 0視訊記憶體設定
遇到乙個問題 新買顯示卡視訊記憶體8g但是tensorflow執行的時候介面顯示只有約6.3g的視訊記憶體可用,如下圖 即限制了我的視訊記憶體,具體原因為什麼我也不知道,但原來的視訊記憶體小一些的顯示卡就沒有這個問題。目前的解決辦法是 官方文件解決 然後對應的中文部落格 總結一下,就是下面的兩個辦法...
Tensorflow2 0 啟用函式
常用啟用函式及對應特點 神經網路結構的輸出為所有輸入的加權和,這導致整個神經網路是乙個線性模型。而線性模型不能解決異或問題,且面對多分類問題,也顯得束手無策。所以為了解決非線性的分類或回歸問題,啟用函式必須是非線性函式。神經網路中啟用函式的主要作用是提供網路的非線性建模能力。這是因為反向傳播演算法就...