中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

廣告網(wǎng)站 源碼搜索網(wǎng)站排名

廣告網(wǎng)站 源碼,搜索網(wǎng)站排名,河北石家莊房價,建設通多少錢一年TensorFlow 是一個廣泛應用的開源深度學習框架,支持多種機器學習任務,如深度學習、神經(jīng)網(wǎng)絡、強化學習等。以下是 TensorFlow 的詳細教程,涵蓋基礎使用方法和示例代碼。 1. 安裝與導入 安裝 TensorFlow: pip install tensorflow…

TensorFlow 是一個廣泛應用的開源深度學習框架,支持多種機器學習任務,如深度學習、神經(jīng)網(wǎng)絡、強化學習等。以下是 TensorFlow 的詳細教程,涵蓋基礎使用方法和示例代碼。


1. 安裝與導入

安裝 TensorFlow:

pip install tensorflow

導入 TensorFlow:

import tensorflow as tf
import numpy as np

驗證安裝:

print(tf.__version__)  # 查看 TensorFlow 版本

2. TensorFlow 基礎

2.1 張量(Tensor)

TensorFlow 的核心數(shù)據(jù)結構是張量,它是一個多維數(shù)組。

# 創(chuàng)建張量
a = tf.constant([1, 2, 3], dtype=tf.float32)  # 常量張量
b = tf.Variable([4, 5, 6], dtype=tf.float32)  # 可變張量# 基本運算
c = a + b
print(c.numpy())  # 轉換為 NumPy 數(shù)組輸出

輸出結果

[5. 7. 9.]
2.2 自動求導

TensorFlow 支持自動計算梯度。

x = tf.Variable(3.0)with tf.GradientTape() as tape:y = x**2  # 定義目標函數(shù)dy_dx = tape.gradient(y, x)  # 自動求導
print(dy_dx.numpy())

輸出結果

6.0

3. 構建模型

3.1 使用 Sequential API
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Dense# 構建簡單神經(jīng)網(wǎng)絡
model = Sequential([Dense(64, activation='relu', input_shape=(10,)),Dense(32, activation='relu'),Dense(1, activation='sigmoid')
])# 查看模型結構
model.summary()

輸出結果

Model: "sequential"
_________________________________________________________________Layer (type)                Output Shape              Param #   
=================================================================dense (Dense)               (None, 64)                704       dense_1 (Dense)             (None, 32)                2080      dense_2 (Dense)             (None, 1)                 33        =================================================================
Total params: 2,817
Trainable params: 2,817
Non-trainable params: 0
_________________________________________________________________
3.2 自定義模型
import tensorflow as tf
from tensorflow.keras.layers import Denseclass MyModel(tf.keras.Model):def __init__(self):super(MyModel, self).__init__()self.dense1 = Dense(64, activation='relu')self.dense2 = Dense(32, activation='relu')self.output_layer = Dense(1, activation='sigmoid')def call(self, inputs):x = self.dense1(inputs)x = self.dense2(x)return self.output_layer(x)model = MyModel()input_shape = (None, 128, 128, 3)
model.build(input_shape)
model.summary()

輸出結果

Model: "my_model"
_________________________________________________________________Layer (type)                Output Shape              Param #   
=================================================================dense (Dense)               multiple                  256       dense_1 (Dense)             multiple                  2080      dense_2 (Dense)             multiple                  33        =================================================================
Total params: 2,369
Trainable params: 2,369
Non-trainable params: 0
_________________________________________________________________

4. 數(shù)據(jù)處理

4.1 數(shù)據(jù)加載
from tensorflow.keras.datasets import mnist# 加載 MNIST 數(shù)據(jù)集
(x_train, y_train), (x_test, y_test) = mnist.load_data()# 數(shù)據(jù)預處理
x_train = x_train / 255.0  # 歸一化
x_test = x_test / 255.0
x_train = x_train.reshape(-1, 28*28)  # 展平
x_test = x_test.reshape(-1, 28*28)
4.2 創(chuàng)建數(shù)據(jù)管道
# 使用 Dataset API 創(chuàng)建數(shù)據(jù)管道
dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train))
dataset = dataset.shuffle(10000).batch(32).prefetch(tf.data.AUTOTUNE)

5. 模型訓練與評估

5.1 編譯模型
model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])
5.2 訓練模型
history = model.fit(x_train, y_train, epochs=10, batch_size=32, validation_split=0.2)
?5.3 評估模型
test_loss, test_acc = model.evaluate(x_test, y_test)
print(f"Test accuracy: {test_acc}")

完整代碼

import tensorflow as tf
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Dense, Flatten
from tensorflow.keras.datasets import mnist# 加載MNIST數(shù)據(jù)集
(x_train, y_train), (x_test, y_test) = mnist.load_data()# 數(shù)據(jù)預處理:歸一化到 [0, 1]
x_train = x_train / 255.0
x_test = x_test / 255.0# 構建模型
model = Sequential([Flatten(input_shape=(28, 28)),  # 將28x28的圖像展平為1維Dense(128, activation='relu'),  # 全連接層,128個神經(jīng)元Dense(10, activation='softmax')  # 輸出層,10個類別
])# 編譯模型
model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])# 模型訓練
history = model.fit(x_train, y_train, epochs=10, batch_size=32, validation_split=0.2)# 模型評估
test_loss, test_acc = model.evaluate(x_test, y_test)
print(f"Test accuracy: {test_acc}")

輸出結果

Epoch 1/10
1500/1500 [==============================] - 3s 2ms/step - loss: 0.2894 - accuracy: 0.9178 - val_loss: 0.1607 - val_accuracy: 0.9547
Epoch 2/10
1500/1500 [==============================] - 2s 1ms/step - loss: 0.1301 - accuracy: 0.9614 - val_loss: 0.1131 - val_accuracy: 0.9656
Epoch 3/10
1500/1500 [==============================] - 2s 1ms/step - loss: 0.0875 - accuracy: 0.9736 - val_loss: 0.1000 - val_accuracy: 0.9683
Epoch 4/10
1500/1500 [==============================] - 2s 1ms/step - loss: 0.0658 - accuracy: 0.9804 - val_loss: 0.0934 - val_accuracy: 0.9728
Epoch 5/10
1500/1500 [==============================] - 2s 1ms/step - loss: 0.0506 - accuracy: 0.9852 - val_loss: 0.0893 - val_accuracy: 0.9715
Epoch 6/10
1500/1500 [==============================] - 2s 1ms/step - loss: 0.0397 - accuracy: 0.9878 - val_loss: 0.0908 - val_accuracy: 0.9731
Epoch 7/10
1500/1500 [==============================] - 2s 1ms/step - loss: 0.0311 - accuracy: 0.9906 - val_loss: 0.0882 - val_accuracy: 0.9749
Epoch 8/10
1500/1500 [==============================] - 2s 1ms/step - loss: 0.0251 - accuracy: 0.9924 - val_loss: 0.0801 - val_accuracy: 0.9777
Epoch 9/10
1500/1500 [==============================] - 2s 1ms/step - loss: 0.0196 - accuracy: 0.9945 - val_loss: 0.0866 - val_accuracy: 0.9755
Epoch 10/10
1500/1500 [==============================] - 2s 1ms/step - loss: 0.0166 - accuracy: 0.9949 - val_loss: 0.0980 - val_accuracy: 0.9735
313/313 [==============================] - 0s 863us/step - loss: 0.0886 - accuracy: 0.9758
Test accuracy: 0.9757999777793884

代碼說明

  1. 數(shù)據(jù)加載與預處理

    • mnist.load_data():加載手寫數(shù)字數(shù)據(jù)集。
    • 數(shù)據(jù)歸一化:將像素值從 0-255 歸一化到 0-1,有助于加速訓練。
  2. 模型構建

    • Flatten 層:將二維的圖像數(shù)據(jù)展平為一維數(shù)組,便于輸入全連接層。
    • Dense 層:
      • 第一層使用 ReLU 激活函數(shù)。
      • 第二層是輸出層,使用 Softmax 激活函數(shù),用于多分類任務。
  3. 模型編譯

    • 優(yōu)化器:adam 是一種適用于大多數(shù)情況的優(yōu)化算法。
    • 損失函數(shù):sparse_categorical_crossentropy,用于分類任務。
  4. 訓練

    • validation_split=0.2:從訓練數(shù)據(jù)中劃分 20% 用作驗證集。
    • epochs=10:訓練 10 個輪次。
  5. 評估

    • model.evaluate():評估模型在測試集上的性能,返回損失值和準確率。

6. 可視化

6.1 繪制訓練過程
import matplotlib.pyplot as plt# 繪制訓練與驗證準確率
plt.plot(history.history['accuracy'], label='Training Accuracy')
plt.plot(history.history['val_accuracy'], label='Validation Accuracy')
plt.legend()
plt.title('Accuracy over Epochs')
plt.show()
6.2 繪制模型預測
# 顯示預測結果
predictions = model.predict(x_test[:10])
print("Predicted labels:", np.argmax(predictions, axis=1))
print("True labels:", y_test[:10])

輸出結果

Predicted labels: [7 2 1 0 4 1 4 9 5 9]
True labels: [7 2 1 0 4 1 4 9 5 9]

7. 高級功能

7.1 保存與加載模型
# 保存模型
model.save('my_model.h5')# 加載模型
loaded_model = tf.keras.models.load_model('my_model.h5')
7.2 自定義訓練過程
optimizer = tf.keras.optimizers.Adam()
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy()for epoch in range(5):for x_batch, y_batch in dataset:with tf.GradientTape() as tape:predictions = model(x_batch, training=True)loss = loss_fn(y_batch, predictions)gradients = tape.gradient(loss, model.trainable_variables)optimizer.apply_gradients(zip(gradients, model.trainable_variables))print(f"Epoch {epoch+1} Loss: {loss.numpy()}")

完整代碼?

import tensorflow as tf
from tensorflow.keras.datasets import mnist
from tensorflow.keras.layers import Dense# 加載 MNIST 數(shù)據(jù)集
(x_train, y_train), (x_test, y_test) = mnist.load_data()# 將標簽二值化(偶數(shù)為 1,奇數(shù)為 0)
y_train = (y_train % 2 == 0).astype(int)
y_test = (y_test % 2 == 0).astype(int)# 數(shù)據(jù)預處理
x_train = x_train / 255.0  # 歸一化
x_test = x_test / 255.0
x_train = x_train.reshape(-1, 28 * 28)  # 展平
x_test = x_test.reshape(-1, 28 * 28)# 使用 Dataset API 創(chuàng)建數(shù)據(jù)管道
dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train))
dataset = dataset.shuffle(10000).batch(32).prefetch(tf.data.AUTOTUNE)# 定義模型
class MyModel(tf.keras.Model):def __init__(self):super(MyModel, self).__init__()self.dense1 = Dense(64, activation='relu')self.dense2 = Dense(32, activation='relu')self.output_layer = Dense(1, activation='sigmoid')  # 輸出單個概率def call(self, inputs):x = self.dense1(inputs)x = self.dense2(x)return self.output_layer(x)model = MyModel()# 自定義訓練模型# 優(yōu)化器和損失函數(shù)
optimizer = tf.keras.optimizers.Adam()
loss_fn = tf.keras.losses.BinaryCrossentropy()# 模型訓練
for epoch in range(5):for x_batch, y_batch in dataset:with tf.GradientTape() as tape:predictions = model(x_batch, training=True)loss = loss_fn(y_batch, predictions)  # 使用二分類損失函數(shù)gradients = tape.gradient(loss, model.trainable_variables)optimizer.apply_gradients(zip(gradients, model.trainable_variables))print(f"Epoch {epoch + 1} Loss: {loss.numpy()}")

輸出結果

Epoch 1 Loss: 0.14392520487308502
Epoch 2 Loss: 0.013877220451831818
Epoch 3 Loss: 0.006577217951416969
Epoch 4 Loss: 0.004411072935909033
Epoch 5 Loss: 0.0037908260710537434

8. 實際應用案例

8.1 圖像分類
from tensorflow.keras.datasets import fashion_mnist
from tensorflow.keras.utils import to_categorical
from tensorflow.keras.layers import Dense
from tensorflow.keras import Sequential# 加載數(shù)據(jù)集
(x_train, y_train), (x_test, y_test) = fashion_mnist.load_data()# 數(shù)據(jù)預處理
x_train, x_test = x_train / 255.0, x_test / 255.0
y_train, y_test = to_categorical(y_train), to_categorical(y_test)# 模型構建與訓練
model = Sequential([Dense(128, activation='relu', input_shape=(28*28,)),Dense(64, activation='relu'),Dense(10, activation='softmax')
])model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train.reshape(-1, 28*28), y_train, epochs=5, batch_size=32, validation_split=0.2)

輸出結果

Epoch 1/5
1500/1500 [==============================] - 3s 2ms/step - loss: 0.5128 - accuracy: 0.8172 - val_loss: 0.3955 - val_accuracy: 0.8561
Epoch 2/5
1500/1500 [==============================] - 3s 2ms/step - loss: 0.3794 - accuracy: 0.8621 - val_loss: 0.3925 - val_accuracy: 0.8546
Epoch 3/5
1500/1500 [==============================] - 3s 2ms/step - loss: 0.3403 - accuracy: 0.8741 - val_loss: 0.3721 - val_accuracy: 0.8661
Epoch 4/5
1500/1500 [==============================] - 3s 2ms/step - loss: 0.3158 - accuracy: 0.8826 - val_loss: 0.3390 - val_accuracy: 0.8767
Epoch 5/5
1500/1500 [==============================] - 2s 2ms/step - loss: 0.3011 - accuracy: 0.8883 - val_loss: 0.3292 - val_accuracy: 0.8790

總結

TensorFlow 提供了從數(shù)據(jù)處理到模型訓練和部署的完整解決方案。其靈活的 API 和強大的功能使得研究人員和工程師可以快速實現(xiàn)復雜的機器學習和深度學習任務。通過不斷實踐,可以深入了解 TensorFlow 的更多特性。

http://www.risenshineclean.com/news/34893.html

相關文章:

  • 現(xiàn)在那個網(wǎng)站做視頻最賺錢嗎湖南靠譜關鍵詞優(yōu)化
  • 做公司網(wǎng)站軟件鄭州百度seo關鍵詞
  • 建站之星網(wǎng)站模板百度sem認證
  • 坪山網(wǎng)站建設服務寧波seo關鍵詞如何優(yōu)化
  • 電子商務網(wǎng)站開發(fā)設計報告書seo免費入門教程
  • 河北省建設集團有限公司網(wǎng)站百度查重免費入口
  • 做網(wǎng)站能力介紹模板之家官網(wǎng)
  • wordpress 響應式產(chǎn)品展示站微信營銷推廣的方式有哪些
  • 寧波網(wǎng)站開發(fā)公司湘潭關鍵詞優(yōu)化公司
  • 商務網(wǎng)站欣賞營銷管理系統(tǒng)
  • 貴陽網(wǎng)站設計焊工培訓內(nèi)容
  • 網(wǎng)站LOGO透明底色PNG格式怎么做的最新足球賽事
  • 自己做網(wǎng)站還是用別人網(wǎng)站網(wǎng)絡做推廣公司
  • 建立網(wǎng)站的步驟 實湖南嵐鴻寧波網(wǎng)站制作與推廣價格
  • 一級a做爰片免費網(wǎng)站冫百度熱搜電視劇
  • 亳州是網(wǎng)站建設百度seo霸屏軟件
  • 做網(wǎng)站后端要什么技術搜索引擎費用
  • 煙臺專業(yè)做網(wǎng)站公司有哪些發(fā)布信息的免費平臺
  • 建站 哪個網(wǎng)站系統(tǒng)好用四川seo整站優(yōu)化費用
  • 成都住房和城鄉(xiāng)建設部網(wǎng)站天津疫情最新消息
  • 網(wǎng)站建設套餐是什么百度的關鍵詞優(yōu)化
  • wordpress 5.0.1編輯器seo外包多少錢
  • 十大網(wǎng)站app軟件下載網(wǎng)絡營銷與策劃試題及答案
  • 做的網(wǎng)站打開慢淮安百度推廣公司
  • 跨境電商亞馬遜seo教程之關鍵詞是什么
  • 網(wǎng)頁設計職位優(yōu)化大師下載安裝app
  • 四川華泰建設集團網(wǎng)站免費做網(wǎng)站網(wǎng)站
  • wordpress 評論框 提示網(wǎng)頁優(yōu)化方案
  • 英文網(wǎng)站建設方法網(wǎng)站怎么收錄到百度
  • 信陽網(wǎng)站建設策劃方案廣東今日最新疫情通報