亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Facebook最新開源Torchnet工具包,加速人工智能研究

hightopo / 2400人閱讀

摘要:昨日,研究人員開源工具包,并表示這個工具包可快速建立有效且可重復(fù)使用的學(xué)習(xí)系統(tǒng),從而促進深度學(xué)習(xí)協(xié)同發(fā)展。支持機器學(xué)習(xí)與人工智能已經(jīng)出現(xiàn)很多年,它們的大多研究進展已經(jīng)被公用研究數(shù)據(jù)集和更強大的計算機所支持尤其是。

昨日,F(xiàn)acebook 研究人員開源 Torchnet 工具包,并表示這個工具包可快速建立有效且可重復(fù)使用的學(xué)習(xí)系統(tǒng),從而促進深度學(xué)習(xí)協(xié)同發(fā)展。在發(fā)布的這篇 Blog 中,F(xiàn)acebook 的三位研究人員介紹了 Torchnet 的特性以及功用,并使用案例進行了詳細講解。

開源的 Torchnet 能夠幫助研究人員及開發(fā)者在 Torch 中建立快速且可重復(fù)使用的學(xué)習(xí)系統(tǒng)原型。在建立快速而簡潔的深度機器學(xué)習(xí)運算原型上,Torchnet 幫助我們向前邁進了一大步。它是使用 Torch 的一種新型軟件工具包,可以促進深度學(xué)習(xí)實驗的快速協(xié)同發(fā)展。

這周于紐約召開的國際機器學(xué)習(xí)大會(ICML)上我們介紹并開放了源碼的 Torchnet,提供包括樣板文件代碼,關(guān)鍵抽象化及實施參考的工具集合,能夠相互咬合或被拆解繼而重新使用,大大加快了該領(lǐng)域的發(fā)展。它促進了模塊化的程序設(shè)計方法,減少了異步使用簡化中的漏洞,實現(xiàn)了并行數(shù)據(jù)加載及高效 GPU 計算。

Facebook 發(fā)布的 Torchnet 論文

Torchnet 建立在 Torch 的成功之上,后者是一種通過在 CPU (OpenMP/SSE) 和 GPU (CUDA)上快速實現(xiàn)常見代數(shù)運算,從而建立深度學(xué)習(xí)模型的框架。

一個實驗框架

盡管 Torch 已經(jīng)成為深度機器學(xué)習(xí)領(lǐng)域研究的主要框架之一,但它不提供機器學(xué)習(xí)實驗的抽象化代碼和樣板文件代碼。因此研究者們不得不反復(fù)從零開始編寫實驗代碼——犯同樣的錯并可能得出錯誤結(jié)論——完全拖慢了發(fā)展進度。我們創(chuàng)造Torchnet 就是為了提供給研究者們有關(guān)如何建立代碼的清晰指引,和能夠加快開發(fā)進度的樣板文件代碼。

模塊化 Torchnet 的設(shè)計簡化了對數(shù)據(jù)集,數(shù)據(jù)加載過程,模型,優(yōu)化和性能指標等一系列變分編碼的測試過程。這使得快速試驗成為可能。例如在不同數(shù)據(jù)集上運行相同的實驗,和插入不同(bare-bones)數(shù)據(jù)裝載機一樣簡單,改變評價標準只需更改一行代碼來插入不同的性能表。Torchnet 的總體設(shè)計類似于 Legos,其模塊建立在一套能夠?qū)崿F(xiàn)簡便咬合的協(xié)議之上。聯(lián)鎖塊制定了一個通用系統(tǒng),保證組件能夠堅固地安裝在一起并可以輕易更換其他組件。我們還開發(fā)了有關(guān)如何建立新組件的清晰指引。

開源 Torch 已經(jīng)擁有了一個活躍的開發(fā)者社區(qū),他們創(chuàng)建了優(yōu)化包,流形學(xué)習(xí),度量學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò)等。在此基礎(chǔ)上建立的 Torchnet 作為一個服務(wù)平臺,主要通過執(zhí)行機器學(xué)習(xí)實驗或工具的插件,供研究者共享成果。

GPU支持

機器學(xué)習(xí)與人工智能已經(jīng)出現(xiàn)很多年,它們的大多研究進展已經(jīng)被公用研究數(shù)據(jù)集和更強大的計算機所支持——尤其是 GPUs。

Torchnet 與諸如 Caffe, Chainer, TensorFlow 和 Theano 的深度學(xué)習(xí)框架基本上是不同的,它不關(guān)注深度網(wǎng)絡(luò)中的有效推論執(zhí)行和梯度計算,而是提供一個位于深度學(xué)習(xí)框架之上的框架(也即 torch/nn),從而方便快速試驗。Torchnet 提供一組子集包并執(zhí)行五種主要類型的抽象化:

數(shù)據(jù)集——提供返回數(shù)據(jù)集中樣本數(shù)的 size 函數(shù),及一個返回到數(shù)據(jù)集中 idx-th 樣本的 get(idx)函數(shù)。

數(shù)據(jù)集迭代器——從 1 到數(shù)據(jù)集尺寸的簡單 for 循環(huán),并調(diào)用 get() 函數(shù)的循環(huán)值作為輸入。

引擎——提供訓(xùn)練和測試模型所必需的標準邏輯。

計量儀——用作性能測量,比如一次訓(xùn)練的運行時間或所有樣本的平均損失函數(shù)值。

日志——用來記錄實驗。

最重要的子集包負責(zé)與機器學(xué)習(xí)問題有關(guān)的樣板文件代碼的實現(xiàn)。它們包括計算機視覺,自然語言處理和語音處理。

其他子集包或許體量更小,關(guān)注的是更明確的問題甚至數(shù)據(jù)集。比如像 Imagenet 和 COCO 這樣的視覺數(shù)據(jù)集,TIMIT 和 LibriSpeech ?這種語音數(shù)據(jù)集,以及類似 One Billion Word Benchmark 和 WMT-14 的文本數(shù)據(jù)集。

案例

這一節(jié)我將展示一個簡單而基礎(chǔ)的、運用Torchnet在MNIST上訓(xùn)練邏輯回歸的例子。首先是必要的依賴代碼:

require ’nn’local tnt ? = require ’torchnet’local mnist = require ’mnist’

接著我們定義一個在 MNIST 訓(xùn)練集或測試集上構(gòu)造異步數(shù)據(jù)集迭代器的函數(shù)。這個數(shù)據(jù)集迭代器接收一個用來構(gòu)建 Torchnet 數(shù)據(jù)集對象的閉包(closure)作為輸入。這里的數(shù)據(jù)集是從包含圖像和目標的張量中,僅返回相關(guān)行的一個ListDataset;其實你也可以用自己的數(shù)據(jù)集定義來替換這個 ListDataset。核心數(shù)據(jù)集會被裝進一個 BatchDataset 中用以構(gòu)建 128 大小的 mini-batches。

local function getIterator(mode)

? return tnt.ParallelDatasetIterator{

? ? nthread = 1,

? ? init ? ?= function() require "torchnet" end,

? ? closure = function()

? ? ? local dataset = mnist[mode .. "dataset"]()

? ? ? return tnt.BatchDataset{

? ? ? ? ?batchsize = 128,

? ? ? ? ?dataset = tnt.ListDataset{

? ? ? ? ? ?list = torch.range(

? ? ? ? ? ? ?1, dataset.data:size(1)

? ? ? ? ? ?),?

? ? ? ? ? ?load = function(idx)

? ? ? ? ? ? ?return {

? ? ? ? ? ? ? ?input ?= dataset.data[idx],

? ? ? ? ? ? ? ?target = torch.LongTensor{

? ? ? ? ? ? ? ? ?dataset.label[idx]

? ? ? ? ? ? ? ?},

? ? ? ? ? ? ?} -- sample contains input and target

? ? ? ? ? ?end,

? ? ? ? }

? ? ? }

? ? end,

? }end

隨后,建立一個簡單的線性模型:

local net = nn.Sequential():add(nn.Linear(784,10))

接下來,我們初始化 Torchnet 引擎并執(zhí)行重置,更新,打印平均損失和平均分類錯誤的掛鉤。在訓(xùn)練標準中調(diào)用forward() 之后,再調(diào)用這個更新平均損失和平均分類錯誤的掛鉤:

local engine = tnt.SGDEngine()local meter ?= tnt.AverageValueMeter()local clerr ?= tnt.ClassErrorMeter{topk = {1}}

engine.hooks.onStartEpoch = function(state)

? meter:reset()

? clerr:reset()end

engine.hooks.onForwardCriterion = function(state)

? meter:add(state.criterion.output)

? clerr:add(

? ? state.network.output, state.sample.target)

? print(string.format(

? ? "avg. loss: %2.4f; avg. error: %2.4f",

? ? meter:value(), clerr:value{k = 1}))end

然后,最小化使用 SGD 的邏輯損失:

local criterion = nn.CrossEntropyCriterion()

engine:train{

? network ? = net,

? iterator ?= getIterator("train"),

? criterion = criterion,

? lr ? ? ? ?= 0.1,

? maxepoch ?= 10,}

訓(xùn)練完畢后,我們在測試集上測量平均損失和平均分類錯誤:

engine:test{

? network ? = net,

? iterator ?= getIterator(’test’),

? criterion = criterion,}

更高級的例子可能會在引擎中實行額外的掛鉤。比如你想在每個訓(xùn)練期后測量試驗誤差,就需要 EndEpoch 掛鉤。運行GPU 做同一個案例,則需增加一些簡單代碼——這里尤其注意把模型和數(shù)據(jù)備份到 GPU 中??赏ㄟ^在樣本可用后執(zhí)行一個掛鉤的方式將數(shù)據(jù)樣本復(fù)制到 GPU3 的緩沖區(qū)。

require "cunn"

net ? ? ? = net:cuda()

criterion = criterion:cuda()local input ?= torch.CudaTensor()local target = torch.CudaTensor()

engine.hooks.onSample = function(state)

? input:resize(?

? ? ? state.sample.input:size()

? ):copy(state.sample.input)

? target:resize(

? ? ? state.sample.target:size()

? ):copy(state.sample.target)

? state.sample.input ?= input

? state.sample.target = targetend

協(xié)同智能

開源 Torchnet 的目的是授權(quán)開發(fā)者社區(qū),快速建立有效且可重復(fù)使用的學(xué)習(xí)系統(tǒng)。原型能夠更快咬合,實驗便可蓬勃發(fā)展。成功的實現(xiàn)方案將更容易復(fù)制,漏洞也會隨之減少。

我們希望 Torchnet 能開辟出 Torch 社區(qū)的協(xié)同智能,從而一起創(chuàng)造更高效的深度學(xué)習(xí)實驗。

歡迎加入本站公開興趣群

商業(yè)智能與數(shù)據(jù)分析群

興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價值的辦法,實際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉庫,數(shù)據(jù)挖掘工具,報表系統(tǒng)等全方位知識

QQ群:81035754

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/4354.html

相關(guān)文章

  • Facebook賈揚清宣布新機器學(xué)習(xí)系統(tǒng)Caffe2Go

    摘要:這一新程序被稱為,是一個完整的深度學(xué)習(xí)系統(tǒng),它的架構(gòu)已經(jīng)嵌入手機中。因此,移動設(shè)備環(huán)境對機器學(xué)習(xí)系統(tǒng)提出了機遇和挑戰(zhàn)。展望下一步,加上這樣的研究工具鏈,是的機器學(xué)習(xí)產(chǎn)品的核心。 風(fēng)格遷移一直是機器學(xué)習(xí)領(lǐng)域內(nèi)的一項重要任務(wù),很多研究機構(gòu)和研究者都在努力打造速度更快、計算成本更低的風(fēng)格遷移機器學(xué)習(xí)系統(tǒng),比如《怎么讓你的照片帶上藝術(shù)大師風(fēng)格?李飛飛團隊開源快速神經(jīng)網(wǎng)絡(luò)風(fēng)格遷移代碼 》、《谷歌增強型...

    Rango 評論0 收藏0
  • 以靜制動的TensorFlow Fold動態(tài)計算圖介紹

    摘要:近日它們交鋒的戰(zhàn)場就是動態(tài)計算圖,誰能在這場戰(zhàn)爭中取得優(yōu)勢,誰就把握住了未來用戶的流向。所以動態(tài)框架對虛擬計算圖的構(gòu)建速度有較高的要求。動態(tài)計算圖問題之一的多結(jié)構(gòu)輸入問題的高效計 隨著深度學(xué)習(xí)的發(fā)展,深度學(xué)習(xí)框架之間競爭也日益激烈,新老框架紛紛各顯神通,想要在廣大DeepLearner的服務(wù)器上占據(jù)一席之地。近日它們交鋒的戰(zhàn)場就是動態(tài)計算圖,誰能在這場戰(zhàn)爭中取得優(yōu)勢,誰就把握住了未來用戶的流...

    waltr 評論0 收藏0
  • Facebook聯(lián)合微軟推出神經(jīng)網(wǎng)絡(luò)交換格式ONNX

    摘要:近日,與微軟聯(lián)合推出了開放式神經(jīng)網(wǎng)絡(luò)交換格式,它是一個表征深度學(xué)習(xí)模型的標準,可實現(xiàn)模型在不同框架之間的遷移。例如,在中,條件句通常是對輸入張量的大小或維度上的計算。 近日,F(xiàn)acebook 與微軟聯(lián)合推出了開放式神經(jīng)網(wǎng)絡(luò)交換(ONNX)格式,它是一個表征深度學(xué)習(xí)模型的標準,可實現(xiàn)模型在不同框架之間的遷移。ONNX 是構(gòu)建開源生態(tài)環(huán)境的第一步,供人工智能開發(fā)者輕松選擇并組合較先進的工具。開發(fā)...

    CrazyCodes 評論0 收藏0
  • 最新Github上各DL框架Star數(shù)量大PK

    摘要:下圖總結(jié)了絕大多數(shù)上的開源深度學(xué)習(xí)框架項目,根據(jù)項目在的數(shù)量來評級,數(shù)據(jù)采集于年月初。然而,近期宣布將轉(zhuǎn)向作為其推薦深度學(xué)習(xí)框架因為它支持移動設(shè)備開發(fā)。該框架可以出色完成圖像識別,欺詐檢測和自然語言處理任務(wù)。 很多神經(jīng)網(wǎng)絡(luò)框架已開源多年,支持機器學(xué)習(xí)和人工智能的專有解決方案也有很多。多年以來,開發(fā)人員在Github上發(fā)布了一系列的可以支持圖像、手寫字、視頻、語音識別、自然語言處理、物體檢測的...

    oogh 評論0 收藏0
  • IBM表示已經(jīng)打破Facebook人工智能服務(wù)器擴展記錄

    摘要:日前,公司宣布推出其分布式深度學(xué)習(xí)軟件的測試版,該軟件證明了在深度學(xué)習(xí)表現(xiàn)出來的技術(shù)飛躍。系統(tǒng)加速和內(nèi)存總監(jiān)在一篇博文中表示更受歡迎的深度學(xué)習(xí)框架擴展到服務(wù)器中的多個,而不是擴展到具有的多個服務(wù)器。 日前,IBM 公司宣布推出其分布式深度學(xué)習(xí)軟件的測試版,該軟件證明了在深度學(xué)習(xí)表現(xiàn)出來的技術(shù)飛躍。深度學(xué)習(xí)是人工智能的一種形式,它依賴于人工神經(jīng)網(wǎng)絡(luò)的應(yīng)用。其重點是讓計算機能夠像人們那樣理解數(shù)字...

    Yumenokanata 評論0 收藏0

發(fā)表評論

0條評論

hightopo

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<