pytorch初步學習(一)

2021-09-20 13:25:48 字數 3201 閱讀 2584

最近在學習神經網路以及深度學習,在老師建議下是從pytorch開始入手,但是在直接看到網路也是比較懵的狀態,所以購買了一本書籍開始學習一些基礎的概念以及引數意義,最開始就先從最簡單的書籍上講解的順序開始記錄下自己學習的過程及理解。

當然首先需要安裝環境及配置,安裝cuda(前提最好時英偉達顯示卡),首先在cmd中安裝pytorch,建立虛擬環境以及除錯確認是否成功,安裝anaconda,以及pycharm上的呼叫環境以及使用,此處預設已經配置完成。欲瞭解可參考csdn其他大佬的配置過程,或者問我這個小萌新(我自己的安裝過程)。

pytorch提供兩種型別的資料抽象,稱為張量和變數。張量類似於python陣列,可改變大小,資料抽象使得其在gpu和cpu上可以實現簡易切換,簡單理解就是如此操作時,機器學習演算法可以理解不同格式的資料,也就是將一些想要處理的資料變為演算法可以認識的語言。以下列出一些常見的張量,以及一些自己參考書籍的一些理解:

import torch

x = torch.rand(10)

print(x.size())

結果為如下:

torch.size([10])

import torch

high = torch.floattensor([1.64,1.70,1.55,1.56,1.78])

print(temp.size())

結果為:

torch.size([5])

注意此處顯示為數量而當只有乙個資料的時候顯示為該資料。

import torch

from sklearn.datasets import load_boston#資料為boston房價資料,位於包sticik_learn中

boston = load_boston()

print(boston.data.shape)

print(boston_tensor.size())

print(boston_tensor[:2])

print(boston_tensor[:10:5])

結果為:

(506, 13)#506行,13列

torch.size([506, 13])

tensor([[6.3200e-03, 1.8000e+01, 2.3100e+00, 0.0000e+00, 5.3800e-01, 6.5750e+00,

6.5200e+01, 4.0900e+00, 1.0000e+00, 2.9600e+02, 1.5300e+01, 3.9690e+02,

4.9800e+00],

[2.7310e-02, 0.0000e+00, 7.0700e+00, 0.0000e+00, 4.6900e-01, 6.4210e+00,

7.8900e+01, 4.9671e+00, 2.0000e+00, 2.4200e+02, 1.7800e+01, 3.9690e+02,

9.1400e+00]], dtype=torch.float64)

tensor([[6.3200e-03, 1.8000e+01, 2.3100e+00, 0.0000e+00, 5.3800e-01, 6.5750e+00,

6.5200e+01, 4.0900e+00, 1.0000e+00, 2.9600e+02, 1.5300e+01, 3.9690e+02,

4.9800e+00],

[2.9850e-02, 0.0000e+00, 2.1800e+00, 0.0000e+00, 4.5800e-01, 6.4300e+00,

5.8700e+01, 6.0622e+00, 3.0000e+00, 2.2200e+02, 1.8700e+01, 3.9412e+02,

5.2100e+00]], dtype=torch.float64)

import numpy as np#所有的開頭都要加入torch 前邊都已經寫了所以這時候一般都是省略

from pil import image

panda = np.array(image.open(『d:\pytorch書籍原始碼\deeplearningwithpytorch_code\dlwithpytorch-master\images\panda.jpg』).resize((224, 224)))

panda_tensor = torch.from_numpy(panda)

print(panda_tensor.size())

plt.imshow(panda)

結果為:

torch.size([224, 224, 3])

以及乙個,但是我電腦好像有點問題沒法顯示,但是沒報錯所以估計是哪有一點小問題,之後在處理,現在主要是理解各個數字的含義,拿輸出來說,前兩個數字224,224分別為高和寬,這裡第三個數字3為通道數(rgb),簡單理解就是為了使影象呈現彩色即三個顏色通道。

sales1 = torch.floattensor([1000.0, 323.2, 333.4, 444.5, 1000.0, 323.2, 333.4, 444.5])

sales2 = torch.floattensor([1000.0, 323.2, 333.4, 444.5, 1000.0, 323.2, 333.4, 444.5])

print(sales1[:5])#切片張量

print(sales2[:-5])

plt.imshow(panda_tensor[:, :, 0].numpy())#這兩個分別為只取影象乙個通道(上)和裁剪熊貓頭部(下)

plt.imshow(panda_tensor[25:175,60:130,0].numpy())

結果為:

tensor([1000.0000, 323.2000, 333.4000, 444.5000, 1000.0000])

tensor([1000.0000, 323.2000, 333.4000])

由兩個輸出那可知,第乙個取出了前5個,第二個取出了倒數第5個之前的。最下邊兩行表示只取影象乙個通道(上)和裁剪熊貓頭部(下),所以下邊那行**為尺寸比例。

剩下的見下篇。。。

pytorch學習筆記(一)

pytprch最基本的操作物件是tensor 張量 它表示乙個多維矩陣,類似於numpy的ndaarrays,張量可以在gpu上做高速計算 使用步驟 構造乙個初始化矩陣 torch.rand 全0矩陣 torch.zeros 全1矩陣 torch.ones pytorch基本資料型別 inttens...

PyTorch學習 安裝PyTorch

例如,使用的是 windows 系統,想用 pip 安裝,python 是 3.6 版的,沒有 gpu 加速,那就按上面的選,然後根據上面的提示,在 terminal 中輸入以下指令就好了 pip3 install torch 1.3.1 cpu torchvision 0.4.2 cpu ftor...

Lucene初步學習 一

public class indexwriterindexwriter是在索引過程中中的中心元件,它不是唯一用來修飾索引的類,這個類建立乙個新的索引並且新增到乙個已有的索引中。public abstract class diretorydirectorys是抽象類,用來表示lucene索引的位置,有...