国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

詳解PyTorch批訓練及優(yōu)化器比較

2020-02-22 23:55:01
字體:
來源:轉載
供稿:網友

一、PyTorch批訓練

1. 概述

PyTorch提供了一種將數(shù)據(jù)包裝起來進行批訓練的工具——DataLoader。使用的時候,只需要將我們的數(shù)據(jù)首先轉換為torch的tensor形式,再轉換成torch可以識別的Dataset格式,然后將Dataset放入DataLoader中就可以啦。

import torch import torch.utils.data as Data  torch.manual_seed(1) # 設定隨機數(shù)種子  BATCH_SIZE = 5  x = torch.linspace(1, 10, 10) y = torch.linspace(0.5, 5, 10)  # 將數(shù)據(jù)轉換為torch的dataset格式 torch_dataset = Data.TensorDataset(data_tensor=x, target_tensor=y)  # 將torch_dataset置入Dataloader中 loader = Data.DataLoader(   dataset=torch_dataset,   batch_size=BATCH_SIZE, # 批大小   # 若dataset中的樣本數(shù)不能被batch_size整除的話,最后剩余多少就使用多少   shuffle=True, # 是否隨機打亂順序   num_workers=2, # 多線程讀取數(shù)據(jù)的線程數(shù)   )  for epoch in range(3):   for step, (batch_x, batch_y) in enumerate(loader):     print('Epoch:', epoch, '|Step:', step, '|batch_x:',        batch_x.numpy(), '|batch_y', batch_y.numpy()) ''''' shuffle=True Epoch: 0 |Step: 0 |batch_x: [ 6. 7. 2. 3. 1.] |batch_y [ 3.  3.5 1.  1.5 0.5] Epoch: 0 |Step: 1 |batch_x: [ 9. 10.  4.  8.  5.] |batch_y [ 4.5 5.  2.  4.  2.5] Epoch: 1 |Step: 0 |batch_x: [ 3.  4.  2.  9. 10.] |batch_y [ 1.5 2.  1.  4.5 5. ] Epoch: 1 |Step: 1 |batch_x: [ 1. 7. 8. 5. 6.] |batch_y [ 0.5 3.5 4.  2.5 3. ] Epoch: 2 |Step: 0 |batch_x: [ 3. 9. 2. 6. 7.] |batch_y [ 1.5 4.5 1.  3.  3.5] Epoch: 2 |Step: 1 |batch_x: [ 10.  4.  8.  1.  5.] |batch_y [ 5.  2.  4.  0.5 2.5]  shuffle=False Epoch: 0 |Step: 0 |batch_x: [ 1. 2. 3. 4. 5.] |batch_y [ 0.5 1.  1.5 2.  2.5] Epoch: 0 |Step: 1 |batch_x: [ 6.  7.  8.  9. 10.] |batch_y [ 3.  3.5 4.  4.5 5. ] Epoch: 1 |Step: 0 |batch_x: [ 1. 2. 3. 4. 5.] |batch_y [ 0.5 1.  1.5 2.  2.5] Epoch: 1 |Step: 1 |batch_x: [ 6.  7.  8.  9. 10.] |batch_y [ 3.  3.5 4.  4.5 5. ] Epoch: 2 |Step: 0 |batch_x: [ 1. 2. 3. 4. 5.] |batch_y [ 0.5 1.  1.5 2.  2.5] Epoch: 2 |Step: 1 |batch_x: [ 6.  7.  8.  9. 10.] |batch_y [ 3.  3.5 4.  4.5 5. ] ''' 

2. TensorDataset

classtorch.utils.data.TensorDataset(data_tensor, target_tensor)

TensorDataset類用來將樣本及其標簽打包成torch的Dataset,data_tensor,和target_tensor都是tensor。

3. DataLoader

代碼如下:classtorch.utils.data.DataLoader(dataset, batch_size=1, shuffle=False, sampler=None,num_workers=0, collate_fn=<function default_collate>, pin_memory=False,drop_last=False)

dataset就是Torch的Dataset格式的對象;batch_size即每批訓練的樣本數(shù)量,默認為;shuffle表示是否需要隨機取樣本;num_workers表示讀取樣本的線程數(shù)。

二、PyTorch的Optimizer優(yōu)化器

本實驗中,首先構造一組數(shù)據(jù)集,轉換格式并置于DataLoader中,備用。定義一個固定結構的默認神經網絡,然后為每個優(yōu)化器構建一個神經網絡,每個神經網絡的區(qū)別僅僅是優(yōu)化器不同。通過記錄訓練過程中的loss值,最后在圖像上呈現(xiàn)得到各個優(yōu)化器的優(yōu)化過程。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 屏山县| 犍为县| 尖扎县| 五常市| 成武县| 海城市| 襄垣县| 桂阳县| 自治县| 广汉市| 山阴县| 黄梅县| 金寨县| 凤阳县| 喀喇沁旗| 高台县| 蒲江县| 沅江市| 遂川县| 龙泉市| 雅江县| 鄂托克旗| 商都县| 桃源县| 寿宁县| 贵港市| 德阳市| 枣庄市| 洮南市| 西昌市| 无为县| 丰台区| 同德县| 张家港市| 阿拉善盟| 盐津县| 江孜县| 高邮市| 集贤县| 杭州市| 高台县|