pytorch是乙個基於torch的python開源機器學習庫,用於自然語言處理等應用程式。它主要由facebookd的人工智慧小組開發,不僅能夠 實現強大的gpu加速,同時還支援動態神經網路。
pytorch是乙個動態的框架,而tensorflow是靜態框架(2.x版本也為動態框架優先)。靜態框架就是指我們首先構建乙個計算圖,構建完成之後這個圖就不再變化,通過給變數賦值來進行計算,這樣勢必導致我們需要修改邏輯的時候相對比較複雜,而動態圖修改計算邏輯相對比較簡單。簡單舉例如下,例如假設我們需要實現如下計算圖:
tf**:
import numpy as np
import tensorflow as tf
np.random.seed(0)
raw,col=3,4
x=tf.placeholder(tf.float32)
y=tf.placeholder(tf.float32)
z=tf.placeholder(tf.float32)
a=x*y
b=a+z
c=tf.reduce_sum(b)
grad_x,grad_y,grad_z=tf.gradients(c,[x,y,z])
with tf.session()as sess:
values=
out=sess.run([c,grad_x,grad_y,grad_z],
feed_dict=values)
c_val,grad_x_val,grad_y_val,grad_z_val=out
print(c_val,grad_x_val,grad_y_val,grad_z_val)
pytorch**:
import torch
from torch.autograd import variable
raw,col=3,4
x=variable(torch.randn(raw,col),requires_grad=true)
y=variable(torch.randn(raw,col),requires_grad=true)
z=variable(torch.randn(raw,col),requires_grad=true)
a=x*y
b=a+z
c=torch.sum(b)
c.backward()
print(x.grad.data)
print(y.grad.data)
print(z.grad.data)
可以發現二者都包含了建立前向計算等過程,但是相對來說pytorch**比較簡短一些,相對也比較靈活一些。
安裝pytorch詳細過程_mcyzsf的部落格-csdn部落格_pytorch安裝
Pytorch深度學習實踐 線性模型
在看劉二大人的pytorch教程,寫個筆記記錄一下,如果有什麼問題歡迎一起 呀 傳送門 劉二大人的pytorch深度學習實踐 線性模型 首先是線性模型的定義 給定由d個屬性描述對的示例x x x x 其中 是第i個屬性上的取值,線性模型試圖學得乙個通過屬性的線性組合來進行 的函式,即 轉換成向量形式...
PyTorch深度學習實踐 反向傳播
pytorch深度學習實踐 完結合集 嗶哩嗶哩 bilibili 目錄在之前課程中介紹的線性模型就是乙個最簡單的神經網路的結構,其內部引數的更新過程如下 對於簡單的模型來說可以直接使用表示式的方式來更新權重,但是如果網路結構比較複雜 如下圖 直接使用解析式的方式來更新顯然有些複雜且不太可能實現。反向...
PyTorch 深度學習實踐 第2講
第2講 linear model 源 b站 劉二大人 傳送門 pytorch深度學習實踐 線性模型 說明 1 函式forward 中,有乙個變數w。這個變數最終的值是從for迴圈中傳入的。2 for迴圈中,使用了np.arange。若對numpy不太熟悉,傳送門numpy資料計算從入門到實戰 3 p...