-
神經網絡中的損失函數
?最簡單的損失函數:|真實值-預測值|
?mean absolute loss L1
?mean squared loss MSE
?cross entropy loss 交叉熵
?KL divegence ,KL散度
?損失函數的用途:用于計算梯度、反向傳遞、更新網絡權重、
判斷模型是否訓練好了,判斷過度擬合、欠擬合
查看全部 -
神經網絡的訓練過程:
? 定義神經網絡
? 迭代輸入數據
? 神經網絡計算輸出
? 計算損失
? 反向傳遞梯度回到網絡的參數
? 更新網絡的權重
查看全部 -
Autograd包是pytorch所有神經網絡的核心
為tensors上的所有操作提供了自動區分
在autograd下,反向傳遞backprop代碼自動定義
? requires_grad
? ? -在tensor上設定.requires_grad = true后,autograd會自動追蹤與該tensor有關的所有運算
? ?backward()
? ? ?-所有運算完成后,執行 .backward(),autograd會自動計算梯度并執行反向傳遞
? ?.grad
? ? ? ?用來訪問梯度
? with torch.no_grad()
? ? ? ?自動忽略梯度
查看全部 -
BP:back propogate 誤差反向傳播
使用梯度下降法向前傳遞誤差,使用傳遞誤差來更新權值
查看全部 -
每一個神經元包括:輸入、輸出、以及兩個運算
-x表示輸入
- w表示權值? ? ? -w與相對應的x相乘
-? Sigma求和
-? a是求和和的值
-? f是激活函數,把a的值轉換到一個固定范圍內
查看全部 -
在 PyTorch中
? ? ?初始化 x,y,z?
? ? ? ? ? ? ? ? ?x = torch.tensor(torch.rand(N,d),requires_grad = True)
? ? ? ? ? ? ? ? ?y = torch.tensor(torch.rand(N,d),requires_grad = True)
? ? ? ? ? ? ? ? ?z = torch.tensor(torch.rand(N,d),requires_grad = True)
? ? 進行運算?
? ? ? ? ? ? ? ? ?a = x*y
? ? ? ? ? ? ? ? ?b = a+ z?
? ? ? ? ? ? ? ? ? c = torch.sum(b)
PyTorch和TensorFlow的區別
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?PyTorch? ? ? ? ? ? ? ? ?TensorFlow
? ? 計算圖分類? ? ? ? ? ? ?動態計算圖? ? ? ? ? ? ? ? 靜態計算圖
? ? 計算圖定義? ? ? ? 計算圖在運行時定義? ? 計算圖需要提前定義
? ?調試? ? ? ? ? ? ? ? ?簡單 ,可以使用任何py? ?復雜,只能用專為? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??thon開發工具?? ? ? ? ? ? ? TensorFlow開發工具
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?如 tfdbg
?可視化? ? ? ? ? ? ? ? 支持Tensorboard? ? ? ? ? 支持Tensorboard
?數據并行? ? ? ? ? 簡單,只需一行代碼? ? ? ? ? 復雜,需要手動配置
?支持硬件? ? ? ? ? ? ?CPU、GPU? ? ? ? ? ? ? ? ? ? CPU、GPU
?支持語言? ? ? ? ? ?python、C ++? ? ? ? ? ? ? ? Python,C++
開發公司? ? ? ? ? ? ? ? Facebook? ? ? ? ? ? ? ? ? ?Google
查看全部 -
? ? ? ? ?開啟會話
? ? ? ? ? ? ? ? with tf.Session() as sess:
? ? ? ? ?注入數據
? ? ? ? ? ? ? ?value = {
????????????????????? ? x:? np.random.randn(N,D)
? ? ? ? ? ? ? ? ? ? ? ? y: np.random.randn(N,D)
? ? ? ? ? ? ? ? ? ? ? ? z: np.random.randn(N,d)
????????????????????????}? ? ? ? ? ?
? ? ? ? ?進行運算
? ? ? ? ? ? ? ? ? ? ?out = sess.run([c,grad_x,grad_y,grad_z],feed_dict = values)??
? ? ? ? ? ? ? ? ? ? c_value,grad_x_val,grad_y_val,grad_z_val = out
查看全部 -
PyTorch與TensorFlow的區別:
PyTorch更像python的原生代碼,TensorFlow把計算和運算圖分開處理,
首先要畫出運算圖,然后才能進行計算。如:
定義計算圖
? ? ? ? 定義占位符
? ? ? ? ? ? ? ? ? ?x= tf.placeholder(tf.float23)
? ? ? ? ? ? ? ? ? ?y = tf.placeholder(tf.float23)
? ? ? ? ? ? ? ? ? ?z = tf.placeholder(tf.float23)
? ? ? ?定義運算
? ? ? ? ? ? ? ? ? ?a = x*y
? ? ? ? ? ? ? ? ? ? b = a+z
? ? ? ? ? ? ? ? ? ? ?c = tf.redunce_sum(b)
? ? ? ? ? 定義梯度(在返鄉傳遞中用到)
? ? ? ? ? ? ? ? ? grad_x,grad_y,grad_z = tf.gradients(c,[x,y,z])
? ??
查看全部 -
PyTorch是一個python機器學習庫,底層基于C++,最初由facebook開發
還有 TensorFlow,Keras ,Caffe2,theano
查看全部 -
storage and retrieval of PyTorch models
查看全部 -
loss functions in neural networks
查看全部 -
PyTorch vs TensorFlow
查看全部 -
機器學習中,根據神經網絡計算出的結果及其誤差不斷地進行反向傳遞,得出每一項地最優權值。
查看全部 -
加載數據集應該保持文件結構
查看全部 -
公共數據集torchvison.dataser.數據集名稱加載
私人數據集torchvision.dataset.ImageFolder 和 torch.utils.data.DataLoader加載
trochvision.transforms 數據歸一化
查看全部
舉報