Tensorflow2 0簡單應用 一

2021-10-02 21:36:35 字數 3001 閱讀 4686

我是初學者 參考

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 啟用函式

常用啟用函式及對應特點 神經網路結構的輸出為所有輸入的加權和,這導致整個神經網路是乙個線性模型。而線性模型不能解決異或問題,且面對多分類問題,也顯得束手無策。所以為了解決非線性的分類或回歸問題,啟用函式必須是非線性函式。神經網路中啟用函式的主要作用是提供網路的非線性建模能力。這是因為反向傳播演算法就...