Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Definisi parameter kelas Python dan kaedah pengembangan data nyah picit/kembang

Definisi parameter kelas Python dan kaedah pengembangan data nyah picit/kembang

WBOY
WBOYke hadapan
2022-08-24 13:32:402412semak imbas

[Cadangan berkaitan: Tutorial video Python3]

Takrifan parameter kelas

Tetapkan persekitaran conda kepada ai , conda activate ai

Asal usul fail ini:

Oleh kerana dalam fungsi kehilangan yang dilaksanakan oleh pytorch yolov1, kita melihat bahawa nn.Module diwarisi, dan dua daripada mereka Parameter bukan jenis yang dinyatakan dalam c, jadi dari manakah jenisnya berasal

Di sini kita meneroka perkara sedemikian

Logik operasi:

  • Pertama tentukan pembina dan fungsi tersuai dalam kelas
  • Pembina mentakrifkan atribut S dan B. Fungsi tersuai memperkenalkan dua parameter dan memanggil dua parameter
    • Di sini ialah penjelasan tentang struktur parameter, bergantung pada apa yang dipanggil parameter Sebagai contoh, N = box1.size(0) M = box2.size(0) dipanggil di sini untuk menunjukkan bahawa ia adalah sesuatu seperti matriks, dan takrifan kotak1 yang sepadan ialah `rand (10,4)
import torch
import torch.nn as nn
import torch.nn.functional as F
from torch.autograd import Variable

#探究属性S,B是如何产生的,以及box1、box2是如何产生的、如何调用
class yoloLoss(nn.Module):
    def __init__(self,S,B):
        self.S=S
        self.B=B
    def compute_iot(self,box1,box2):
        N = box1.size(0)  #调用方式就表示了变量是什么类型,这里是一个张量,其中每个元素是一个tensor,所以是N*4的张量
        M = box2.size(0)
        print(M,N)

yoloLoss1 =yoloLoss(10, 11)
yoloLoss1.compute_iot(torch.rand(10,4),torch.rand(11,4))

Peluasan data

Terokai penggunaan unsqueeze dan kembangkan, unsqueeze You boleh menambah latitud, tetapi saiz dimensi hanya 1, dan mengembangkan boleh menyalin data dan menukar data kepada n

# 获得一开始的初始化数值:tensor([[a1,a2,a3]])
nn1=torch.rand(1,3)
print(nn1)
# unsqueeze是解压的意思,在第i个维度上进行扩展,将其扩展为tensor([[[a1,a2,a3]]])
nn1=nn1.unsqueeze(0)
print("*"*100)
print(nn1)
#利用expand对数据进行扩展
nn1=nn1.expand(1,3,3)
print("*"*100)
print(nn1)

[Cadangan berkaitan: Tutorial video Python3 ]

Atas ialah kandungan terperinci Definisi parameter kelas Python dan kaedah pengembangan data nyah picit/kembang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:jb51.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam