成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

TensorFlow和PyTorch相繼發(fā)布最新版本,有什么變化?

Jrain / 2073人閱讀

摘要:統(tǒng)計(jì)分布庫(kù)的初始版本。允許將邊界傳遞到最優(yōu)化接口。從版本開始,這樣的模型將接受導(dǎo)出時(shí)指定的密鑰。更新示例以使用,并移動(dòng)到中。此外,此更改增加了設(shè)備列表中的主要以支持指定。廣播語義密切跟隨式廣播。

Tensorflow

主要特征和改進(jìn)

在Tensorflow庫(kù)中添加封裝評(píng)估量。所添加的評(píng)估量列表如下:

1. 深度神經(jīng)網(wǎng)絡(luò)分類器(DNN Classifier)

2. 深度神經(jīng)網(wǎng)絡(luò)回歸量(DNN Regressor)

3. 線性分類器(Linear Classifier)

4. 線性回歸量(Linea rRegressor)

5. 深度神經(jīng)網(wǎng)絡(luò)線性組合分類器(DNN Linear Combined Classifier)

6. 深度神經(jīng)網(wǎng)絡(luò)線性組合回歸量(DNN Linear Combined Regressor)

?我們所有預(yù)構(gòu)建的二進(jìn)制文件都是用cuDNN 6構(gòu)建的。

?import tensorflow現(xiàn)在運(yùn)行要快得多。

?將文件緩存添加到GCS文件系統(tǒng)中,其中文件內(nèi)容具有可配置的較大失效期(configurable max staleness)。這允許跨關(guān)閉/開放邊界緩存文件內(nèi)容。

?將軸參數(shù)(axis parameter)添加到tf.gather中。

?向tf.pad中添加一個(gè)constant_values關(guān)鍵字參數(shù)。

?添加Dataset.interleave轉(zhuǎn)換。

?添加ConcatenateDataset以連接兩個(gè)數(shù)據(jù)集。

?在TensorFlow中為Poets訓(xùn)練腳本添加Mobilenet 的支持。

?將塊緩存添加到具有可配置塊大小和計(jì)數(shù)的GCS文件系統(tǒng)中。

?添加SinhArcSinh Bijector。

?添加Dataset.list_files API。

?為云TPU引進(jìn)新的操作和Python綁定。

?添加與tensorflow-android相對(duì)稱的TensorFlow-iOS CocoaPod。

?引入集群解析器(Cluster Resolver)的基本實(shí)現(xiàn)。

?統(tǒng)一TensorShape和PartialTensorShape的內(nèi)存表示。因此,張量現(xiàn)在最多有254個(gè)維度,而不是255個(gè)。

?更改對(duì)LIBXSMM的引用版本,使用1.8.1版本。

?TensorFlow調(diào)試器(tfdbg):

1. 使用-s標(biāo)志顯示數(shù)字張量值的概要,用命令print_tensor或pt。

2. 使用curses UI中的print_feed或pf命令和可點(diǎn)擊鏈接顯示Feed值。

3. op級(jí)別和Python源代碼行級(jí)別的運(yùn)行分析器(Runtime profiler)使用run -p命令。

?統(tǒng)計(jì)分布庫(kù)tf.distributions的初始版本。

?一元tf.where和tf.nn.top_k的GPU內(nèi)核和速度改進(jìn)。

?將單調(diào)注意包裝器(Monotonic Attention wrappers)添加到tf.contrib.seq2seq。

?添加tf.contrib.signal,一個(gè)用于信號(hào)處理原語的庫(kù)。

?添加tf.contrib.resampler,它包含CPU和GPU操作,用于區(qū)分圖像的重采樣。

API的突破性更改

?當(dāng)tf.RewriterConfig在1.2版本的候選版本中可用(它從來沒有在實(shí)際版本中應(yīng)用)后將其從Python API中刪除,圖重寫(Graph rewriting)仍然可用,只是不像tf.RewriterConfig那樣。而是添加顯式導(dǎo)入。

?打破對(duì)tf.contrib.data.Dataset API期望有一個(gè)嵌套結(jié)構(gòu)的更改。列表現(xiàn)在被隱式轉(zhuǎn)換為tf.Tensor。你可能需要在現(xiàn)有代碼中將列表的用法更改為元組。此外,現(xiàn)在還支持程序具有嵌套結(jié)構(gòu)。

contrib API的更改

?添加tf.contrib.nn.rank_sampled_softmax_loss,這是一個(gè)可以提高秩損失(rank loss)的采樣softmax變體。

?當(dāng)他們看到小于或等于1個(gè)單位的權(quán)重時(shí),tf.contrib.metrics {streaming_covariance,streaming_pearson_correlation}修改為返回nan。

?在contrib中添加時(shí)間序列模型。有關(guān)詳細(xì)信息,請(qǐng)參閱contrib / timeseries / README.md。

?在tensorflow / contrib / lite / schema.fbs中添加FULLY_CONNECTED操作。

錯(cuò)誤修正以及其他更改

?在python中使用int64 Tensor index進(jìn)行切片時(shí),修復(fù)strides和begin 類型失配問題。

?改進(jìn)卷積padding文件。

?添加標(biāo)簽常量,gpu,以顯示基于GPU支持的圖形。

?saved_model.utils現(xiàn)在顯然是支持SparseTensors的。

?非較大抑制(non-max suppression)更為有效的實(shí)現(xiàn)。

?除了對(duì)在線L2的支持之外,還增加了對(duì)從收縮型L2到FtrlOptimizer的支持。

?固定矩計(jì)算中的負(fù)方差。

?拓展UniqueOp基準(zhǔn)測(cè)試,以涵蓋更多的collision案例。

?提高M(jìn)ac上GCS文件系統(tǒng)的穩(wěn)定性。

?在HloCostAnalysis中添加時(shí)間評(píng)估。

?修復(fù)Estimator中的錯(cuò)誤,即構(gòu)造函數(shù)中的參數(shù)不是對(duì)用戶提供參數(shù)的深度復(fù)制。這個(gè)錯(cuò)誤無意中使得用戶在創(chuàng)建Estimator之后突變參數(shù),從而導(dǎo)致潛在的未定義的行為。

?在saver.restore中添加了無檢查保存路徑。

?在device_mgr中以舊名稱注冊(cè)設(shè)備,以便輕松轉(zhuǎn)換到集群規(guī)范傳播(cluster spec-propagated)的配置。

?將向量指數(shù)添加到分布中。

?添加一個(gè)具有bitwise_and,bitwise_or,bitwise_xor和invert函數(shù)的按位模塊(bitwise module)。

?添加固定網(wǎng)格的ODE集成例程。

?允許將邊界傳遞到scipy最優(yōu)化接口。

?將fft_length參數(shù)修正為tf.spectral.rfft&tf.spectral.irfft。

?使用“預(yù)測(cè)”方法導(dǎo)出的模型簽名將不再使其輸入和輸出密鑰被靜默地忽略,且被重寫為“輸入”和“輸出”。如果一個(gè)模型在1.2版本之前以不同的名稱導(dǎo)出,并且現(xiàn)在使用tensorflow / serving,它將接受使用"inputs"和"outputs"的請(qǐng)求。從1.2版本開始,這樣的模型將接受導(dǎo)出時(shí)指定的密鑰。因此,使用“輸入”和“輸出”的推理請(qǐng)求可能會(huì)開始有所失敗。為了解決這個(gè)問題,請(qǐng)更新任何推理客戶端,以發(fā)送具有訓(xùn)練器代碼所使用的實(shí)際輸入和輸出密鑰的請(qǐng)求,或者相反地,更新訓(xùn)練器代碼以分別命名輸入和輸出張量為"inputs"和 "outputs"。使用“分類”和“回歸”方法的簽名不會(huì)受此更改的影響;它們將繼續(xù)像以前一樣規(guī)范其輸入和輸出鍵。

?將內(nèi)存中的緩存添加到Dataset API中。

?將數(shù)據(jù)集迭代器中的默認(rèn)end_of_sequence變量設(shè)置為false。

? [Performance]通過使用nn.bias_add將use_bias = True設(shè)置為2x,可以提高tf.layers.con2d的性能。

?更新iOS示例以使用CocoaPods,并移動(dòng)到tensorflow / examples / ios中。

?在tf.summary操作中添加一個(gè)family =attribute,以允許控制Tensorboard中用于組織摘要的選項(xiàng)卡名稱。

?當(dāng)配置GPU時(shí),如果在configure腳本中存在請(qǐng)求,則可根據(jù)請(qǐng)求自動(dòng)構(gòu)建GPU,而不需要--config = cuda。

?修復(fù)CPU / GPU多項(xiàng)式中小概率的不正確采樣。

?在session上添加一個(gè)list_devices()API以列出集群中的設(shè)備。此外,此更改增加了設(shè)備列表中的主要API以支持指定session。

?允許使用過參數(shù)化的可分離卷積。

?TensorForest多重回歸錯(cuò)誤修復(fù)。

?框架現(xiàn)在支持armv7,cocoapods.org現(xiàn)在可顯示正確的頁(yè)面。

?為CocoaPods創(chuàng)建iOS框架的腳本。

?現(xiàn)在,TensorFlow的Android版本已經(jīng)被推到了jcenter,以便更方便地集成到應(yīng)用中。

?TensorFlow調(diào)試器(tfdbg):

1.修復(fù)了一個(gè)阻止tfdbg使用多GPU設(shè)置的錯(cuò)誤。

2.修復(fù)了一個(gè)阻止tfdbg使用tf.Session.make_callable的錯(cuò)誤。

Pytorch0.2.0

這里是PyTorch的下一個(gè)主要版本,恰恰趕上了國(guó)際機(jī)器學(xué)習(xí)大會(huì)(ICML)。

我們引入了期待已久的功能,如廣播、高級(jí)索引、高階梯度梯度,最后是分布式PyTorch。

由于引入了廣播,某些可廣播情況的代碼行為與0.1.12中的行為不同。這可能會(huì)導(dǎo)致你現(xiàn)有代碼中出現(xiàn)錯(cuò)誤。我們?cè)凇爸匾茡p和解決方法”部分中提供了輕松識(shí)別此模糊代碼的方法。

目錄:

?張量廣播(numpy樣式)

?張量和變量的高級(jí)索引

?高階梯度

?分布式PyTorch(多節(jié)點(diǎn)訓(xùn)練等)

?神經(jīng)網(wǎng)絡(luò)層和特征:SpatialTransformers、WeightNorm、EmbeddingBag等

?torch 和 autograd的新應(yīng)用:矩陣相乘、逆矩陣等

?更容易調(diào)試,更好的錯(cuò)誤信息

?Bug修復(fù)

?重要的破損和解決方法

張量廣播(numpy樣式)

簡(jiǎn)而言之,如果PyTorch操作支持廣播,則其張量參數(shù)可以自動(dòng)擴(kuò)展為相同大?。ú粡?fù)制數(shù)據(jù))。

PyTorch廣播語義密切跟隨numpy式廣播。如果你熟悉數(shù)字廣播,可以按照之前流程執(zhí)行。

一般語義學(xué)

如果以下規(guī)則成立,則兩個(gè)張量是“可廣播的”:

?每個(gè)張量具有至少一個(gè)維度。

?當(dāng)從尺寸大小開始迭代時(shí),從尾部維度開始,尺寸大小必須相等,其中一個(gè)為1,或其中一個(gè)不存在。

例如:

如果兩個(gè)張量x、y是“可廣播”的,則所得到的張量大小計(jì)算如下:

?如果x和y的維數(shù)不相等,則將尺寸縮小到尺寸較小的張量的前端,以使其長(zhǎng)度相等。

?然后,對(duì)于每個(gè)維度大小,生成的維度大小是沿該維度的x和y的大小的較大值。

例如:

# can line up trailing dimensions to make reading easier

>>> x=torch.FloatTensor(5,1,4,1)

>>> y=torch.FloatTensor( ?3,1,1)

>>> (x+y).size()

torch.Size([5, 3, 4, 1])

# error case

>>> x=torch.FloatTensor(5,2,4,1)

>>> y=torch.FloatTensor( ?3,1,1)

>>> (x+y).size()

RuntimeError: The size of tensor a (2) must match the size of tensor b (3) at non-singleton dimension 1

更多細(xì)節(jié)可以在PyTorch文檔網(wǎng)站上找到。此外,每個(gè)torch函數(shù)列出了其文檔中的廣播語義。

張量和變量的高級(jí)索引

PyTorch現(xiàn)在支持NumPy樣式的高級(jí)索引的子集。這允許用戶使用相同的[]-樣式操作在Tensor的每個(gè)維度上選擇任意索引,包括不相鄰的索引和重復(fù)的索引。這使得索引策略更靈活,而不需要調(diào)用PyTorch的索引[Select, Add, ...]函數(shù)。

我們來看一些例子:

x = torch.Tensor(5, 5, 5)

純整數(shù)組索引—在每個(gè)維度上指定任意索引

x[[1, 2], [3, 2], [1, 0]]

--> yields a 2-element Tensor (x[1][3][1], x[2][2][0])

也支持廣播、副本

x[[2, 3, 2], [0], [1]]

--> yields a 3-element Tensor (x[2][0][1], x[3][0][1], x[2][0][1])

允許任意索引器形狀

x[[[1, 0], [0, 1]], [0], [1]].shape

--> yields a 2x2 Tensor [[x[1][0][1], x[0][0][1]],

? ? ? ? ? ? ? ? ? ? ? ? ?[x[0][0][1], x[1][0][1]]]

可以使用冒號(hào)、省略號(hào)

x[[0, 3], :, :]

x[[0, 3], ...]

--> both yield a 2x5x5 Tensor [x[0], x[3]]

也可以使用張量來索引!

y = torch.LongTensor([0, 2, 4])

x[y, :, :]

--> yields a 3x5x5 Tensor [x[0], x[2], x[4]]

如果選擇小于ndim,請(qǐng)注意使用逗號(hào)

x[[1, 3], ]

--> yields a 2x5x5 Tensor [x[1], x[3]]

高階梯度

現(xiàn)在你可以評(píng)估PyTorch中的高階微分。例如,你可以計(jì)算Hessian-Vector,懲罰你的模型的梯度梯度的范數(shù),實(shí)施unrolled GAN和改良WGAN等。

在0.2版本中,我們已經(jīng)能夠?yàn)閠orch.XXX函數(shù)和最流行的nn層計(jì)算更高階的梯度。其余的將出現(xiàn)在下一個(gè)版本中。

這是一個(gè)簡(jiǎn)短的例子,懲罰了Resnet-18模型的權(quán)重梯度的范數(shù),使權(quán)重的數(shù)量變化緩慢。

?

我們?cè)谶@里看到兩個(gè)新概念:

?torch.autograd.grad是一個(gè)輸入[輸出,輸入列表(你需要梯度)]的函數(shù),并返回梯度wrt。這些輸入作為元組,而不是將梯度累加到.grad屬性中。如果你想進(jìn)一步操作梯度,這對(duì)你會(huì)很有用。

?你可以對(duì)梯度進(jìn)行操作,并向后調(diào)用()。

支持更高階梯度的nn層的列表有:

? AvgPool*d, BatchNorm*d, Conv*d, MaxPool1d,2d, Linear, Bilinear。

? pad, ConstantPad2d, ZeroPad2d, LPPool2d, PixelShuffle。

? ReLU6, LeakyReLU, PReLU, Tanh, Tanhshrink, Threshold, Sigmoid, HardTanh, ELU,Softsign, SeLU。

? L1Loss, NLLLoss, PoissonNLLLoss, LogSoftmax, Softmax2d。

其余的將在下一個(gè)版本中啟用。

為了實(shí)現(xiàn)更高階的梯度,我們引入了一種新的autograd.Function寫入格式。(寫入函數(shù)的當(dāng)前/舊樣式完全向后兼容)。你可以點(diǎn)擊此處鏈接閱讀更多關(guān)于新樣式的函數(shù)。

大多數(shù)人不寫自己的autograd.Function,它們是低級(jí)基元使得autograd引擎完成新操作,你可以指定正向和反向調(diào)用。

分布式PyTorch

我們介紹torch.distributed包,允許你在多臺(tái)機(jī)器之間交換張量。使用此軟件包,你可以通過多臺(tái)機(jī)器和更大的小批量擴(kuò)展網(wǎng)絡(luò)訓(xùn)練。例如,你將能夠?qū)崿F(xiàn)《Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour》這篇論文。

distributed軟件包遵循MPI風(fēng)格的編程模型。這意味著你可以得到很多函數(shù),如send,recv,all_reduce,它將在節(jié)點(diǎn)(機(jī)器)之間交換張量。

對(duì)于每個(gè)機(jī)器,首先識(shí)別彼此并分配的數(shù)字(等級(jí)),我們提供簡(jiǎn)單的初始化方法:

?共享文件系統(tǒng)(要求所有進(jìn)程可以訪問單個(gè)文件系統(tǒng))

?IP組播(要求所有進(jìn)程都在同一個(gè)網(wǎng)絡(luò)中)

?環(huán)境變量(需要你手動(dòng)分配等級(jí)并知道所有進(jìn)程可訪問節(jié)點(diǎn)的地址)

我們的包文檔中包含有關(guān)初始化和可用后端的更多詳細(xì)信息,但以下是使用多播地址進(jìn)行初始化的示例:

mport torch.distributed as dist

dist.init_process_group(backend="tcp", ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ?init_method="tcp://[ff15:1e18:5d4c:4cf0:d02d:b659:53ba:b0a7]:23456", ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ?world_size=4)

print("Hello from process {} (out of {})!".format(

? ? ? ? dist.get_rank(), dist.get_world_size()))

這將在第3臺(tái)機(jī)器上打印Hello from process 2 (out of 4)。

world大小是參與工作的過程的數(shù)量。每個(gè)將被分配一個(gè)等級(jí),它是0和world_size-1之間的數(shù)字,在此作業(yè)中是的。它將用作進(jìn)程標(biāo)識(shí)符,并且將被代替地址使用,例如,指定張量應(yīng)被發(fā)送到哪個(gè)進(jìn)程。

這是一個(gè)代碼段,顯示如何執(zhí)行簡(jiǎn)單的點(diǎn)對(duì)點(diǎn)通信:

?

異步p2p函數(shù)(isend,irecv)也可用。

然而,一些通信模式出現(xiàn)頻繁,導(dǎo)致已經(jīng)開發(fā)出更有效的集體調(diào)用。他們通常參與整個(gè)過程組,并且比使用send / recv的單純算法要快得多。一個(gè)例子是all_reduce:

?

分布式軟件包是相當(dāng)?shù)图?jí)別的,因此它允許實(shí)現(xiàn)更先進(jìn)的算法,并將代碼定制到特定的目的,但數(shù)據(jù)并行訓(xùn)練是我們?yōu)榇藙?chuàng)建高級(jí)輔助工具的常見方法。

因此,我們引入了DistributedDataParallel,這意味著幾乎可以替代nn.DataParallel。

以下是一個(gè)代碼段,展示了將其添加到現(xiàn)有訓(xùn)練代碼中所需的更改:

?

你可以在這里看到更完整的Imagenet訓(xùn)練示例

新的nn層:SpatialTransformers,WeightNorm,EmbeddingBag等

新功能

?引入forward_pre_hook來在調(diào)用forward函數(shù)之前執(zhí)行用戶指定的閉包。

?方便訪問非葉梯度(non-leaf gradients):

目前,要訪問并檢查中間值的梯度,我們必須使用鉤(hooks)。這不方便進(jìn)行簡(jiǎn)單的檢查,因此,我們引入retain_grad。較好通過一個(gè)例子來解釋:

?

?DataParallel現(xiàn)在支持dicts作為輸入

新圖層

?空間變換神經(jīng)網(wǎng)絡(luò)通過F.grid_sample和F.affine_grid。

?nn.SeLU和nn.AlphaDropout被引入,論文:《自標(biāo)準(zhǔn)化神經(jīng)網(wǎng)絡(luò)》。

?nn.GLU(門控線性單元)被引入,論文:《卷積序列到序列學(xué)習(xí)》。

?權(quán)重歸一化現(xiàn)在通過torch.utils.weight_norm來實(shí)現(xiàn)。

?現(xiàn)在可以使用ignore_index參數(shù)計(jì)算cross_entropy_loss和nll_loss來忽略特定的目標(biāo)索引。這是實(shí)現(xiàn)掩碼的廉價(jià)實(shí)用方式,你可以在其中使用在計(jì)算損失時(shí)忽略的掩碼索引。

?F.normalize 實(shí)現(xiàn)了按維度的重歸一化。

?F.upsample和nn.Upsample將多個(gè)Upsampling層合并成一個(gè)函數(shù)。它實(shí)現(xiàn)了2d和3d雙線性/三線性/最近的上采樣。

?nn.EmbeddingBag:當(dāng)構(gòu)建詞袋模型時(shí),執(zhí)行一個(gè)Embedding 跟Sum或Mean是很常見的。對(duì)于可變長(zhǎng)度序列,計(jì)算降維包涉及掩碼。我們提供了一個(gè)單一的nn.EmbeddingBag,它能高效和快速地計(jì)算降維包,特別是對(duì)于可變長(zhǎng)度序列。

?通過bce_with_logits數(shù)值穩(wěn)定的二進(jìn)制交叉熵?fù)p失。

?通過PoissonNLLLoss進(jìn)行目標(biāo)泊松分布的負(fù)對(duì)數(shù)似然損失。

?cosine_similarity:返回x1和x2之間的余弦相似度,沿著dim計(jì)算。

訓(xùn)練效用

學(xué)習(xí)率調(diào)度程序:torch.optim.lr_scheduler提供了幾種無聲和智能的方法來調(diào)整當(dāng)前的學(xué)習(xí)率。它們?cè)谟?xùn)練中相當(dāng)方便,為用戶想要做的事情提供方便。

提供各種策略,可以根據(jù)適當(dāng)情況使用,更多可以在文檔包中閱讀:

?ReduceLROnPlateau,LambdaLR,StepLR,MultiStepLR,ExponentialLR

ConcatDataset是一個(gè)方便的數(shù)據(jù)集元類,可以合并和連接兩個(gè)多帶帶的數(shù)據(jù)集。

torch 和 autograd的新應(yīng)用

?所有reduce函數(shù)如sum和mean,現(xiàn)在默認(rèn)壓縮縮小的維度。例如,torch.sum(torch.randn(10,20))返回1D Tensor。

?x.shape,類似于numpy。 一個(gè)方便的屬性,相當(dāng)于x.size()。

?torch.matmul,類似于np.matmul。

?按位和,或,xor,lshift,rshift。

?autograd支持反向,gesv,cumprod,atan2。

?無偏差的var和std現(xiàn)在可以通過關(guān)鍵字參數(shù)選項(xiàng)。

?torch.scatter_add - torch.scatter,除了遇到重復(fù)索引時(shí),這些值被求和。

?當(dāng)沒有給出參數(shù)時(shí),torch.median的行為類似于torch.sum,即它減小所有尺寸,并返回扁平化Tensor的單個(gè)中值。

?masked_copy_已重命名為masked_scatter_(在masked_copy_上已棄用)。

?torch.manual_seed現(xiàn)在也seed所有的CUDA設(shè)備。

?你現(xiàn)在可以通過關(guān)鍵字參數(shù)torch.rand(1000,generator = gen)指定隨機(jī)數(shù)生成器對(duì)象。

錯(cuò)誤修復(fù)和小改進(jìn)

現(xiàn)在,當(dāng)將變量轉(zhuǎn)換為bool時(shí),我們會(huì)發(fā)出錯(cuò)誤。例如:

b = Variable(torch.zeros(1))

if b[0]: # errors now

?在CUDA中解決qr分解中的正確性錯(cuò)誤。

?支持IBM PowerPC64平臺(tái)。

?檢查編譯時(shí)的CuDNN版本是否在運(yùn)行時(shí)是相同的版本。

?改進(jìn)CUDA分叉子進(jìn)程中的錯(cuò)誤消息。

?在CPU上更快的轉(zhuǎn)置拷貝。

?改進(jìn)InstanceNorm中的錯(cuò)誤消息。

?為各種例程添加更多的參數(shù)檢查,特別是BatchNorm和Convolution例程。

?圍繞CPU后端的形狀報(bào)告更好的錯(cuò)誤消息。

?支持每臺(tái)機(jī)器超過8個(gè)GPU(解決CUDA p2p限制)。

?訪問不存在的屬性時(shí),改進(jìn)錯(cuò)誤消息。

?變量的T()與Tensor一致。

?當(dāng)退出p = 1時(shí),防止除以零。

?修復(fù)在非當(dāng)前設(shè)備上共享CUDA張量。

?當(dāng)BNε<允許的CuDNN值時(shí),回退到THNN。

?對(duì)于MKL和OMP使用不同數(shù)量的線程時(shí),修復(fù)線程丟失。

?改善使用CuDNN RNN時(shí)的內(nèi)存使用。

?用負(fù)的padding將ZeroPad2d向后修復(fù)。

?添加虛擬tensor.data屬性,為用戶提供可解釋的錯(cuò)誤消息。

?修復(fù)Python3的原位劃分。

?在0-dim數(shù)組上調(diào)用from_numpy時(shí)提高誤差。

?空的張量在多處理器間共享時(shí)不會(huì)出錯(cuò)。

?修復(fù)擴(kuò)展張量的baddbmm。

?讓parallel_apply接受任意輸入。

?張量和變量中的關(guān)鍵字參數(shù)現(xiàn)在是一致的。

?當(dāng)Magma不可用時(shí)修復(fù)torch.inverse。

?為ByteTensor添加邏輯非運(yùn)算符。

?在分散/收集內(nèi)核中添加設(shè)備判斷提示。

重要的破損和解決方法

如你所見,我們引入了兩個(gè)不能向后兼容的重要更改:

?Numpy樣式廣播。

?還原函數(shù)如sum(1)現(xiàn)在默認(rèn)為keepdim = False。

我們提供不同級(jí)別的Python警告,你可以啟用以警告你,如果你使用不贊成的行為,或者你的代碼的行為已更改。

摘要

這是一個(gè)代碼片段,你可以添加到腳本的頂部。

添加此代碼將生成突出顯示不兼容代碼的警告。

修復(fù)代碼不再生成警告。

?

一旦所有警告消失,你可以刪除代碼段。

詳情

現(xiàn)在,讓我們看看這三個(gè)不相容的變化與例子。

使用(現(xiàn)已棄用)1維視圖點(diǎn)分函數(shù)

PyTorch的先前版本允許某些點(diǎn)函數(shù)在不同形狀的張量上執(zhí)行,只要每個(gè)張量中的元素?cái)?shù)量相等即可。 然后通過將每個(gè)張量視為一維來執(zhí)行點(diǎn)操作。 PyTorch現(xiàn)在支持廣播。 “一維”點(diǎn)行為被認(rèn)為是不推薦的,并且在張量不可廣播但具有相同數(shù)量的元素的情況下會(huì)產(chǎn)生Python警告。

例如:

?

在以前沒有發(fā)生過的代碼中進(jìn)行廣播

在兩張張量不相同的情況下,廣播的引入可能導(dǎo)致向后不兼容的變化,但是可以廣播并具有相同數(shù)量的元素。

例如:

>>> torch.add(torch.ones(4,1), torch.randn(4))

以前會(huì)產(chǎn)生一個(gè)尺寸為:torch.Size([4,1])的張量,但現(xiàn)在生產(chǎn)的尺寸為:torch.Size([4,4])。

為了幫助識(shí)別你的代碼中可能存在向后引入的不兼容性的情況,你可以將torch.utils.backcompat.broadcast_warning.enabled設(shè)置為True,在這種情況下會(huì)生成一個(gè)python警告。

例如:

>>> torch.utils.backcompat.broadcast_warning.enabled=True

>>> torch.add(torch.ones(4,1), torch.ones(4))

__main__:1: UserWarning: self and other do not have the same shape, but are broadcastable, and have the same number of elements.

請(qǐng)注意,此設(shè)置可以觸發(fā)廣播有效使用的警告(包括庫(kù)代碼),因此你可能希望在遷移代碼后關(guān)閉此警告。

還原函數(shù)的KeepDim = False。

要在使用默認(rèn)的keepdim參數(shù)使用維度縮減功能時(shí)發(fā)出警告,請(qǐng)將torch.utils.backcompat.keepdim_warning.enabled設(shè)置為True。 例如:

>>> torch.sum(torch.ones(2,3), 1)

__main__:1: UserWarning: backwards compatibility: call to "sum" uses default value for keepdim which has changed default to False. ?Consider passing as kwarg.

3

3

[torch.FloatTensor of size 2]

與torch.utils.backcompat.broadcast_warning.enabled一樣,此警告可以從有效的代碼觸發(fā),因此你很可能希望在遷移代碼后禁用此警告。

還要注意,使用keepdim = False可以使你現(xiàn)有的代碼與廣播“正常工作”。 例如:

源代碼(zip):https://github.com/pytorch/pytorch/archive/v0.2.0.zip。

源代碼(tar.gz):https://github.com/pytorch/pytorch/archive/v0.2.0.tar.gz。歡迎加入本站公開興趣群

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

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

QQ群:81035754

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/4596.html

相關(guān)文章

  • ArXiv最受歡迎開源深度學(xué)習(xí)框架榜單:TensorFlow第一

    摘要:但年月,宣布將在年終止的開發(fā)和維護(hù)。性能并非最優(yōu),為何如此受歡迎粉絲團(tuán)在過去的幾年里,出現(xiàn)了不同的開源深度學(xué)習(xí)框架,就屬于其中典型,由谷歌開發(fā)和支持,自然引發(fā)了很大的關(guān)注。 Keras作者Fran?ois Chollet剛剛在Twitter貼出一張圖片,是近三個(gè)月來arXiv上提到的深度學(xué)習(xí)開源框架排行:TensorFlow排名第一,這個(gè)或許并不出意外,Keras排名第二,隨后是Caffe、...

    trilever 評(píng)論0 收藏0
  • PyTorch一周年戰(zhàn)績(jī)總結(jié):是否比TensorFlow來勢(shì)兇猛?

    摘要:截止到今天,已公開發(fā)行一周年。一年以來,社區(qū)中的用戶不斷做出貢獻(xiàn)和優(yōu)化,在此深表感謝。所以與衡量它的指標(biāo)包括在機(jī)器學(xué)習(xí)研究論文中的使用。來自香港科技大學(xué)的在上推出了面向普通觀眾的在線課程。 Yann LeCun Twitter截止到今天,PyTorch 已公開發(fā)行一周年。一年以來,我們致力于打造一個(gè)靈活的深度學(xué)習(xí)研究平臺(tái)。一年以來,PyTorch 社區(qū)中的用戶不斷做出貢獻(xiàn)和優(yōu)化,在此深表感謝...

    ymyang 評(píng)論0 收藏0
  • Keras vs PyTorch:誰是「第一」深度學(xué)習(xí)框架?

    摘要:第一個(gè)深度學(xué)習(xí)框架該怎么選對(duì)于初學(xué)者而言一直是個(gè)頭疼的問題。簡(jiǎn)介和是頗受數(shù)據(jù)科學(xué)家歡迎的深度學(xué)習(xí)開源框架。就訓(xùn)練速度而言,勝過對(duì)比總結(jié)和都是深度學(xué)習(xí)框架初學(xué)者非常棒的選擇。 「第一個(gè)深度學(xué)習(xí)框架該怎么選」對(duì)于初學(xué)者而言一直是個(gè)頭疼的問題。本文中,來自 deepsense.ai 的研究員給出了他們?cè)诟呒?jí)框架上的答案。在 Keras 與 PyTorch 的對(duì)比中,作者還給出了相同神經(jīng)網(wǎng)絡(luò)在不同框...

    _DangJin 評(píng)論0 收藏0
  • 細(xì)數(shù)Python三十年技術(shù)演變史——萌發(fā)于小眾,崛起于AI

    摘要:作者宋天龍來源科技大本營(yíng)導(dǎo)語一切都始于年的那個(gè)圣誕節(jié),的誕生并不算恰逢其時(shí),它崛起充滿了機(jī)遇巧合,也有其必然性。年的圣誕節(jié),開始編寫語言的編譯器。年發(fā)布的標(biāo)志著的框架基本確定。年月發(fā)布了系列的最后一個(gè)版本,主版本號(hào)為。 showImg(https://segmentfault.com/img/remote/1460000019862276); 作者 | 宋天龍來源 | AI科技大本營(yíng) ...

    tuniutech 評(píng)論0 收藏0
  • 15個(gè)Python庫(kù),讓你學(xué)習(xí)數(shù)據(jù)科學(xué)更輕松

    摘要:在本節(jié)中,我們將看到一些最流行和最常用的庫(kù),用于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)是用于數(shù)據(jù)挖掘,分析和機(jī)器學(xué)習(xí)的最流行的庫(kù)。愿碼提示網(wǎng)址是一個(gè)基于的框架,用于使用多個(gè)或進(jìn)行有效的機(jī)器學(xué)習(xí)和深度學(xué)習(xí)。 showImg(https://segmentfault.com/img/remote/1460000018961827?w=999&h=562); 來源 | 愿碼(ChainDesk.CN)內(nèi)容編輯...

    W4n9Hu1 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<