iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0
SideProject30

python基礎及數據科學之應用系列 第 18

python基礎及數據科學之應用day 18[tensorflow資料庫介紹]

  • 分享至 

  • xImage
  •  

day 18:

/images/emoticon/emoticon10.gif
希望瀏覽數可以多點啦,更多人看我的教學後有所增長

什麼是tensorflow

TensorFlow是Google開發的開源機器學習框架。它提供了一個由工具、函式庫和資源組成的全面系統,用於建立和部署機器學習模型。TensorFlow支援廣泛的任務,包括深度學習、神經網路和數值計算。

什麼是tensorflow keras

Keras API是TensorFlow 的官方進階 API。

下載TensorFlow庫

pip install tensorflow
import tensorflow.keras as keras

檢查版本

import tensorflow as tf
print("TensorFlow version:", tf.__version__)

執行結果:

TensorFlow version: 2.13.0

np.float64np.float32

1.np.float64:它使用64位來表示數字,包括符號位、11位指數和52位小數。
2.
2.np.float32:包括符號位、一個8位指數和一個23位小數。

例子:

為避免有觀看的小夥子不明白以下程式碼的運作,這裏先來一些簡介,這裏大概就是讓人工智能自己尋找規律來計算下列的方程式。

Y=3X+1 

程式碼:

import tensorflow as tf
import numpy as np
from tensorflow import keras

model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])])
model.compile(optimizer='sgd', loss='mean_squared_error')

xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float)
ys = np.array([-2.0, 1.0, 4.0, 7.0, 10.0, 13.0], dtype=float)

model.fit(xs, ys, epochs=500)
print(model.predict([10.0]))

執行結果:

[[30.9945]]

為什麼答案不是31

它不能知道只有六個數據點。結果非常接近 31,但不一定就是 31。

使用類神經網路時,你會發現這種模式會不斷出現。您幾乎可以處理各種能力,而非不確定性,而且只要進行一些程式設計,即可根據結果瞭解結果。

input_shape

input_shape是深度學習框架(例如 TensorFlow 和 Keras)中常用的參數,用於定義機器學習模型的輸入資料的形狀。它指定輸入模型的輸入資料的維度或形狀。

例子 : 處理尺寸為 28x28 像素的灰階影像,則input_shape參數將為(28, 28, 1)

tf.keras.Sequential

tf.keras.Sequential是TensorFlow Keras API 中的一個類,用於建立順序模型(Sequential Model)。

model.compile

model.compile是 TensorFlow Keras API 中用於配置模型訓練參數的方法。它接受一些重要的參數,例如優化器、損失函數和評估指標,以及其他可選參數,總之就是用來優化你的模型,之後可能會再傾詳細的講解。

optimizer

最佳化器:用於指定模型的最佳化演算法。常見的最佳化器包括'adam'、'sgd'、'rmsprop'等。
優化你的模型

loss

損失函數:用於快速模型預測結果與真實值之間的差異或誤差。
優化你的模型

model.fit

model.fit是用於訓練模型的方法,輸入數據和目標數據來訓練數據。

epochs

機器學習中的epochs是指整個資料集在訓練過程中通過模型的次數,影響模型參數的最佳化。epochs 數量取決於問題的複雜度、資料集的大小以及模型訓練的因素。簡單的來說就是複雜的模型需要的數值就是越高,來進行更多訓練,取得更準確的答案。

model.predict

model.predict是用來使用訓練好的模型進行預測的方法。

另一個例子:

這裏有另外一個例子,之前介紹的matplotlib有介紹到一個線性規律,這裏就是利用人工智能觀察規律,並估算一個新的串例。

程式碼:

import tensorflow as tf
import numpy as np

# Input data
x_train = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], dtype=np.float32)
y_train = np.array([3, 5, 7, 9, 11, 13, 15, 17, 19, 21], dtype=np.float32)

# Define the model
model = tf.keras.Sequential([
    tf.keras.layers.Dense(1, input_shape=[1])
])

# Compile the model
model.compile(optimizer='sgd', loss='mean_squared_error')

# Train the model
model.fit(x_train, y_train, epochs=200)

# Predict
x_test = np.array([11, 12, 13, 14, 15], dtype=np.float32)
y_pred = model.predict(x_test)

print(y_pred.flatten())

執行結果:

[23.185764 25.231766 27.277767 29.32377  31.369772]

這裏便不多作介紹,如果不懂可以嘗試反覆理解我上面寫的內容。

/images/emoticon/emoticon13.gif
今天的有趣內容到這裏,如果覺得我的文章對你有幫助或有更好的建議,可以追蹤我和不妨在留言區提出,我們明天再見。

reference:
https://www.tensorflow.org/api_docs/python/tf/keras/Model
https://poe.com


上一篇
python基礎及數據科學之應用day 17[nltk資料庫介紹]
下一篇
python基礎及數據科學之應用day 19[tensorflow資料庫介紹2]
系列文
python基礎及數據科學之應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言