日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

DL之DNN优化技术:神经网络算法简介之数据训练优化【mini-batch技术+etc】

發布時間:2025/3/21 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DL之DNN优化技术:神经网络算法简介之数据训练优化【mini-batch技术+etc】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DL之DNN優化技術:神經網絡算法簡介之數據訓練優化【mini-batch技術+etc】

?

?

目錄

1、mini-batch技術

輸出結果

實現代碼


?

?

?

1、mini-batch技術

輸出結果

?

?

?

實現代碼

# coding: utf-8 #DL之mini-batch:理解深度學習算法中的優化技術【mini-batch技術+etc】import numpy as np from DIY_module.mnist import load_mnist(x_train, t_train), (x_test, t_test) = load_mnist(normalize=True, one_hot_label=True) #設定參數one_hot_label=True,可以得到one-hot 表示(即僅正確解標簽為1,其余為0 的數據結構)。print(x_train.shape) # (60000, 784) print(t_train.shape) # (60000, 10)#從訓練數據中隨機抽取10筆數據,只需指定這些隨機選出的索引,取出mini-batch,然后使用這個mini-batch 計算損失函數即可! train_size = x_train.shape[0] batch_size = 10 batch_mask = np.random.choice(train_size, batch_size) #np.random.choice(60000, 10)會從0 到59999 之間隨機選擇10 個數字x_batch = x_train[batch_mask] t_batch = t_train[batch_mask]#實現mini-batch版交叉熵誤差 #同時處理單個數據和批量數據(數據作為batch集中輸入)兩種情況的函數。 def cross_entropy_error(y, t):if y.ndim == 1: #if判斷y的維度為1 時,即求單個數據的交叉熵誤差時,需要改變數據的形狀t = t.reshape(1, t.size)y = y.reshape(1, y.size) #當輸入為mini-batch 時,要用batch 的個數進行正規化,計算單個數據的平均交叉熵誤差。batch_size = y.shape[0]return -np.sum(t * np.log(y + 1e-7)) / batch_size#當監督數據是標簽形式(非one-hot 表示,而是像“2”“7”這樣的標簽)時,交叉熵誤差可通過如下代碼實現。 #(1)、實現的要點是,由于one-hot表示中t為0的元素的交叉熵誤差也為0,因此針對這些元素的計算可以忽略。即如果可以獲得神經網絡在正確解標簽處的輸出,就可以計算交叉熵誤差。 def cross_entropy_error(y, t):if y.ndim == 1:t = t.reshape(1, t.size)y = y.reshape(1, y.size)batch_size = y.shape[0]return -np.sum(np.log(y[np.arange(batch_size), t] + 1e-7)) / batch_size #微小值1e-7#np.log(y[np.arange(batch_size),t]) #np.arange(batch_size)會生成一個從0到batch_size-1的數組 #y[np.arange(batch_size),t] #會生成NumPy數組[y[0,2], y[1,7], y[2,0],y[3,9], y[4,4]])。

?

?

?

總結

以上是生活随笔為你收集整理的DL之DNN优化技术:神经网络算法简介之数据训练优化【mini-batch技术+etc】的全部內容,希望文章能夠幫你解決所遇到的問題。

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