


Contoh terperinci struktur data tensor dalam Pytorch
[Cadangan berkaitan: Tutorial video Python3 ]
torch.Tensor
torch.Tensor
ialah A matriks berbilang dimensi yang mengandungi elemen jenis data tunggal , serupa dengan numpy array
.
Tensor boleh dijana menggunakan torch.tensor() untuk menukar senarai Python atau data jujukan Yang dijana ialah dtype
dan lalainya ialah torch.FloatTensor
.
Perhatikan bahawa
torch.tensor()
sentiasa menyalin data. Jika anda mempunyai data Tensor dan hanya mahu menukar sifatrequires_grad
nya, gunakanrequires_grad_()
ataudetach()
untuk mengelakkan penyalinan. Jika anda mempunyai pelbagainumpy
dan ingin mengelakkan penyalinan, gunakantorch.as_tensor()
.
1. Tensor jenis data yang ditentukan boleh dihasilkan dengan menghantar parameter torch.dtype
dan/atau torch.device
kepada pembina:
Perhatikan bahawa mengikut urutan untuk menukar tensor torch.device dan/atau torch.dtype yang sedia ada, pertimbangkan untuk menggunakan kaedah
to()
>>> torch.ones([2,3], dtype=torch.float64, device="cuda:0") tensor([[1., 1., 1.], [1., 1., 1.]], device='cuda:0', dtype=torch.float64) >>> torch.ones([2,3], dtype=torch.float32) tensor([[1., 1., 1.], [1., 1., 1.]])
>>> matrix = torch.tensor([[2,3,4],[5,6,7]]) >>> print(matrix[1][2]) tensor(7) >>> matrix[1][2] = 9 >>> print(matrix) tensor([[2, 3, 4], [5, 6, 9]])
atau torch.Tensor.item()
untuk mendapatkan Nombor Python daripada int()
Tensor yang hanya mempunyai satu nilai:
>>> x = torch.tensor([[4.5]]) >>> x tensor([[4.5000]]) >>> x.item() 4.5 >>> int(x) 4
Cipta, supaya requires_grad=True
akan merekodkan operasi yang berkaitan untuk melaksanakan terbitan automatik: torch.autograd
>>> x = torch.tensor([[1., -1.], [1., 1.]], requires_grad=True) >>> out = x.pow(2).sum() >>> out.backward() >>> x.grad tensor([[ 2.0000, -2.0000], [ 2.0000, 2.0000]])
yang sepadan untuk menyimpan datanya. Kelas tensor menyediakan pandangan berbilang dimensi, berjalur dan mentakrifkan operasi berangka. torch.Storage
ialah lalai Singkatan daripada jenis tensor (torch.Tensor
), iaitu, jenis data titik terapung bit torch.FloatTensor
. 32
- Jenis data: Jenis data tensor yang berbeza boleh ditetapkan dengan menukar nilai parameter dtype kaedah torch.tensor(). Dimensi: Jenis data yang berbeza boleh diwakili oleh tensor dimensi yang berbeza. Skalar ialah tensor 0-dimensi, vektor ialah tensor 1-dimensi, dan matriks ialah tensor 2-dimensi. Imej berwarna mempunyai tiga saluran, rgb, dan boleh diwakili sebagai tensor 3 dimensi. Video juga mempunyai dimensi masa, yang boleh dinyatakan sebagai tensor 4 dimensi dengan beberapa kurungan segi empat sama [bilangan dimensi. Dimensi tensor boleh diperoleh menggunakan kaedah dim(). Saiz: Anda boleh menggunakan atribut shape atau kaedah size() untuk melihat panjang tensor dalam setiap dimensi, dan anda boleh menggunakan kaedah view() atau kaedah reshape() untuk menukar saiz daripada tensor.
matrix = torch.tensor([[[1,2,3,4],[5,6,7,8]], [[5,4,6,7], [5,6,8,9]]], dtype = torch.float64) print(matrix) # 打印 tensor print(matrix.dtype) # 打印 tensor 数据类型 print(matrix.dim()) # 打印 tensor 维度 print(matrix.size()) # 打印 tensor 尺寸 print(matrix.shape) # 打印 tensor 尺寸 matrix2 = matrix.view(4, 2, 2) # 改变 tensor 尺寸 print(matrix2)
), while reshape() both Anda juga boleh beroperasi pada tensor yang tidak memenuhi syarat kesinambungan. Apabila keadaan kesinambungan tensor (contiguous
) dipenuhi, hasil yang dikembalikan oleh a.reshape() adalah sama dengan a.view(), dan tiada ruang memori baharu akan dibuka apabila contiguous
tidak dipenuhi, the kaedah view() digunakan secara langsung akan gagal, contiguous
masih berguna, tetapi ruang memori akan dibuka semula dan tidak akan berkongsi memori dengan tensor sebelumnya, iaitu salinan reshape()
"" akan dikembalikan (bersamaan dengan memanggil kaedah dahulu dan kemudian menggunakan kaedah contiguous()
). view()
Untuk pemahaman lanjut, sila rujuk artikel ini
untuk mendapatkan tatasusunan numpy daripada Tensor, atau anda boleh menggunakan kaedah .numpy()
untuk mendapatkan Tensor daripada tatasusunan numpy. Tatasusunan Tensor dan numpy yang dikaitkan dengan kedua-dua kaedah ini berkongsi memori data. Anda boleh menggunakan kaedah torch.from_numpy
tensor untuk menyalin tensor untuk memecahkan perkaitan ini. clone
arr = np.random.rand(4,5) print(type(arr)) tensor1 = torch.from_numpy(arr) print(type(tensor1)) arr1 = tensor1.numpy() print(type(arr1)) """ <class 'numpy.ndarray'> <class 'torch.Tensor'> <class 'numpy.ndarray'> """
kaedah dan item()
kaedah boleh menukar tensor kepada nombor Python dan senarai nombortolist()
# item方法和tolist方法可以将张量转换成Python数值和数值列表 scalar = torch.tensor(5) # 标量 s = scalar.item() print(s) print(type(s)) tensor = torch.rand(3,2) # 矩阵 t = tensor.tolist() print(t) print(type(t)) """ 1.0 <class 'float'> [[0.8211846351623535, 0.20020723342895508], [0.011571824550628662, 0.2906131148338318]] <class 'list'> """
创建 Tensor
创建 tensor ,可以传入数据或者维度,torch.tensor() 方法只能传入数据,torch.Tensor() 方法既可以传入数据也可以传维度,强烈建议 tensor() 传数据,Tensor() 传维度,否则易搞混。
传入维度的方法
方法名 | 方法功能 | 备注 |
---|---|---|
torch.rand(*sizes, out=None) → Tensor | 返回一个张量,包含了从区间 [0, 1) 的均匀分布中抽取的一组随机数。张量的形状由参数sizes定义。 | 推荐 |
torch.randn(*sizes, out=None) → Tensor | 返回一个张量,包含了从标准正态分布(均值为0,方差为1,即高斯白噪声)中抽取的一组随机数。张量的形状由参数sizes定义。 | 不推荐 |
torch.normal(means, std, out=None) → Tensor | 返回一个张量,包含了从指定均值 means 和标准差 std 的离散正态分布中抽取的一组随机数。标准差 std 是一个张量,包含每个输出元素相关的正态分布标准差。 | 多种形式,建议看源码 |
torch.rand_like(a) | 根据数据 a 的 shape 来生成随机数据 | 不常用 |
torch.randint(low=0, high, size) | 生成指定范围(low, hight )和 size 的随机整数数据 | 常用 |
torch.full([2, 2], 4) | 生成给定维度,全部数据相等的数据 | 不常用 |
torch.arange(start=0, end, step=1, *, out=None) | 生成指定间隔的数据 | 易用常用 |
torch.ones(*size, *, out=None) | 生成给定 size 且值全为1 的矩阵数据 | 简单 |
zeros()/zeros_like()/eye() | 全 0 的 tensor 和 对角矩阵 | 简单 |
样例代码:
>>> torch.rand([1,1,3,3]) tensor([[[[0.3005, 0.6891, 0.4628], [0.4808, 0.8968, 0.5237], [0.4417, 0.2479, 0.0175]]]]) >>> torch.normal(2, 3, size=(1, 4)) tensor([[3.6851, 3.2853, 1.8538, 3.5181]]) >>> torch.full([2, 2], 4) tensor([[4, 4], [4, 4]]) >>> torch.arange(0,10,2) tensor([0, 2, 4, 6, 8]) >>> torch.eye(3,3) tensor([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]])
【相关推荐:Python3视频教程 】
Atas ialah kandungan terperinci Contoh terperinci struktur data tensor dalam Pytorch. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Artikel ini akan menerangkan bagaimana untuk meningkatkan prestasi laman web dengan menganalisis log Apache di bawah sistem Debian. 1. Asas Analisis Log Apache Log merekodkan maklumat terperinci semua permintaan HTTP, termasuk alamat IP, timestamp, url permintaan, kaedah HTTP dan kod tindak balas. Dalam sistem Debian, log ini biasanya terletak di direktori/var/log/apache2/access.log dan /var/log/apache2/error.log. Memahami struktur log adalah langkah pertama dalam analisis yang berkesan. 2. Alat Analisis Log Anda boleh menggunakan pelbagai alat untuk menganalisis log Apache: Alat baris arahan: grep, awk, sed dan alat baris arahan lain.

Python cemerlang dalam permainan dan pembangunan GUI. 1) Pembangunan permainan menggunakan pygame, menyediakan lukisan, audio dan fungsi lain, yang sesuai untuk membuat permainan 2D. 2) Pembangunan GUI boleh memilih tkinter atau pyqt. TKInter adalah mudah dan mudah digunakan, PYQT mempunyai fungsi yang kaya dan sesuai untuk pembangunan profesional.

PHP dan Python masing -masing mempunyai kelebihan mereka sendiri, dan memilih mengikut keperluan projek. 1.PHP sesuai untuk pembangunan web, terutamanya untuk pembangunan pesat dan penyelenggaraan laman web. 2. Python sesuai untuk sains data, pembelajaran mesin dan kecerdasan buatan, dengan sintaks ringkas dan sesuai untuk pemula.

Artikel ini membincangkan kaedah pengesanan serangan DDoS. Walaupun tiada kes permohonan langsung "debiansniffer" ditemui, kaedah berikut boleh digunakan untuk pengesanan serangan DDOS: Teknologi Pengesanan Serangan DDo Sebagai contoh, skrip Python yang digabungkan dengan perpustakaan Pyshark dan Colorama boleh memantau trafik rangkaian dalam masa nyata dan mengeluarkan makluman. Pengesanan berdasarkan analisis statistik: dengan menganalisis ciri statistik trafik rangkaian, seperti data

Fungsi Readdir dalam sistem Debian adalah panggilan sistem yang digunakan untuk membaca kandungan direktori dan sering digunakan dalam pengaturcaraan C. Artikel ini akan menerangkan cara mengintegrasikan Readdir dengan alat lain untuk meningkatkan fungsinya. Kaedah 1: Menggabungkan Program Bahasa C dan Pipeline Pertama, tulis program C untuk memanggil fungsi Readdir dan output hasilnya:#termasuk#termasuk#includeintMain (intargc, char*argv []) {dir*dir; structdirent*entry; if (argc! = 2) {

Untuk memaksimumkan kecekapan pembelajaran Python dalam masa yang terhad, anda boleh menggunakan modul, masa, dan modul Python. 1. Modul DateTime digunakan untuk merakam dan merancang masa pembelajaran. 2. Modul Masa membantu menetapkan kajian dan masa rehat. 3. Modul Jadual secara automatik mengatur tugas pembelajaran mingguan.

Artikel ini akan membimbing anda tentang cara mengemas kini sijil NginxSSL anda pada sistem Debian anda. Langkah 1: Pasang Certbot terlebih dahulu, pastikan sistem anda mempunyai pakej CertBot dan Python3-CertBot-Nginx yang dipasang. Jika tidak dipasang, sila laksanakan arahan berikut: sudoapt-getupdateudoapt-getinstallcertbotpython3-certbot-nginx Langkah 2: Dapatkan dan konfigurasikan sijil Gunakan perintah certbot untuk mendapatkan sijil let'Sencrypt dan konfigurasikan nginx: sudoCertBot-ninx ikuti

Mengkonfigurasi pelayan HTTPS pada sistem Debian melibatkan beberapa langkah, termasuk memasang perisian yang diperlukan, menghasilkan sijil SSL, dan mengkonfigurasi pelayan web (seperti Apache atau Nginx) untuk menggunakan sijil SSL. Berikut adalah panduan asas, dengan mengandaikan anda menggunakan pelayan Apacheweb. 1. Pasang perisian yang diperlukan terlebih dahulu, pastikan sistem anda terkini dan pasang Apache dan OpenSSL: sudoaptDateSudoaptgradesudoaptinsta
