Julia Flux與Pytorch的簡單比較

2021-09-20 09:42:32 字數 1681 閱讀 1186

julia flux與pytorch的簡單比較

最近一直都在了解julia語言,並且看到了julia中的自動微分flux。所以去了解了一下,用乙個例子簡單的和pytorch比較了一下。比較的例子來自於pytorch tutorials 中的learning pytorch with example的例子。

import torch

import torch.optim as optim

import time

n,d_in,h,d_out =64,

1000

,100,10

x = torch.randn(n,d_in)

y = torch.randn(n,d_out)

w1 = torch.randn(d_in,h,requires_grad=

true

)w2 = torch.randn(h,d_out,requires_grad=

true

)lr =1e-

6opt = optim.sgd(

(w1,w2)

,lr)

start_time = time.time(

)for t in

range

(500):

y_pred = x.mm(w1)

.relu(

).mm(w2)

loss =

(y_pred-y)

.pow(2

).sum(

) loss.backward(

) opt.step(

)

w1.grad.zero_(

) w2.grad.zero_(

)total_time = time.time(

)- start_time

整個訓練過程在pytorch的耗時為0.5133s,最後的loss 大致為8.2749e-05.

using flux

using dates

n,d_in,h,d_out = 64,1000,100,10

x = randn(n,d_in)

y = randn(n,d_out)

w1 = param(randn(d_in,h))

w2 = param(randn(h,d_out))

# 定義**函式

function predict(x)

y_pred = relu.(x*w1)*w2

return y_pred

end# 定義loss function

function loss(x,y)

y_pred = predict(x)

sum((y .- y_pred).^ 2)

end# 優化器,學習引數,訓練資料

lr = 1e-6

opt = descent(lr)

ps = params(w1,w2)

data = iterators.repeated((x,y),500)

start_time = now()

flux.train!(loss, ps, data, opt)

total_time = now() - start_time

julia flux 整個訓練過程為5.557s,最後的loss大致為3.4024e-7

什麼是PyTorch,為何要使用PyTorch

pytorch 是torch7 團隊開發的,從它的名字就可以看出,其與torch 的不同之處在於pytorch 使用了python 作為開發語言。所謂 python first 同樣說明它是乙個以python 優先的深度學習框架,不僅能夠實現強大的gpu 加速,同時還支援動態神經網路,這是現在很多主...

從頭開始安裝python環境和pytorch等

參考資料 檢視cuda版本 將anaconda安裝到pycharm中 安裝pytorch 直接安裝anaconda,版本選擇 anaconda3 5.2.0 windows x86 64版本,按照網上教程按步驟安裝anaconda,並且在安裝完之後用在cmd下直接pip list,顯示已經安裝了的包...

SQL與NoSQL MySQL與NoSQL的融合

寫這一篇內容的原因是mysql5.6.2突然推出了memcached的功能。nosql to innodb with memcached的出現,可以看出nosql對關聯式資料庫的確產生了巨大的影響,個人覺得這是乙個非常大的進步,可以讓開發人員更加方便的使用nosql和關聯式資料庫。nosql一般被認...