日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TensorFlow 2.0 - 张量/自动求导/梯度下降

發布時間:2024/7/5 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TensorFlow 2.0 - 张量/自动求导/梯度下降 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1. 張量
    • 2. 自動求導、梯度下降

學習于:簡單粗暴 TensorFlow 2

1. 張量

import tensorflow as tf print(tf.__version__) # 2.3.1random_float = tf.random.uniform(shape=()) # tf.Tensor(0.80420315, shape=(), dtype=float32) zero_vec = tf.zeros(shape=(2)) # tf.Tensor([0. 0.], shape=(2,), dtype=float32)A = tf.constant([[1, 2], [3, 4]], dtype=tf.float32) B = tf.constant([[5, 6.], [7, 8]]) print(A.shape) # (2, 2) 形狀 print(A.dtype) # <dtype: 'float32'> 數據類型 print(A.numpy()) # 取出張量的數值矩陣 # [[1. 2.] # [3. 4.]]

2. 自動求導、梯度下降

  • tf.GradientTape() 求導記錄器
  • tf.Variable() 變量的操作可被求導記錄器記錄,常用于機器學習的 參數
  • tape.gradient(loss, vars)自動計算梯度, loss 對 vars 的梯度
  • optimizer.apply_gradients(grads_and_vars) 優化器更新參數
import numpy as np # 原始數據 X_raw = np.array([2013, 2014, 2015, 2016, 2017], dtype=np.float32) y_raw = np.array([12000, 14000, 15000, 16500, 17500], dtype=np.float32)# 歸一化 X = (X_raw - X_raw.min()) / (X_raw.max() - X_raw.min()) y = (y_raw - y_raw.min()) / (y_raw.max() - y_raw.min())# 轉成張量 X = tf.constant(X) y = tf.constant(y)# 參數變量 a = tf.Variable(initial_value=0.) b = tf.Variable(initial_value=0.) variables = [a, b]# 梯度下降 num_epoch = 10000 # 迭代輪數 # 優化器 optimizer = tf.keras.optimizers.SGD(learning_rate=5e-4)# 迭代 for e in range(num_epoch):# 使用tf.GradientTape()記錄損失函數的梯度信息with tf.GradientTape() as tape: # 進入 with 上下文后,變量所有的操作被tape記錄下來y_pred = a * X + b # 預測值loss = tf.reduce_sum(tf.square(y_pred - y)) # 平方損失# 損失函數關于 模型參數 的梯度grads = tape.gradient(loss, variables)# 根據梯度 更新參數optimizer.apply_gradients(grads_and_vars=zip(grads, variables)) 最終變量值: a <tf.Variable 'Variable:0' shape=() dtype=float32, numpy=0.97637> b <tf.Variable 'Variable:0' shape=() dtype=float32, numpy=0.057565063>

總結

以上是生活随笔為你收集整理的TensorFlow 2.0 - 张量/自动求导/梯度下降的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。