PyTorchలో టెన్సర్‌లతో ప్రాథమిక కార్యకలాపాలు

Pytorchlo Tensar Lato Prathamika Karyakalapalu



లోతైన అభ్యాసంలో సంఖ్యా గణనల కోసం శక్తివంతమైన మరియు సౌకర్యవంతమైన డేటా నిర్మాణాన్ని అందించే PyTorch యొక్క మూలస్తంభం టెన్సర్‌లు. NumPy శ్రేణుల వలె, అవి బహుళ డైమెన్షనల్ శ్రేణులను సూచిస్తాయి కానీ లోతైన అభ్యాస పనుల కోసం ప్రత్యేకంగా రూపొందించబడిన అదనపు ఫీచర్లు మరియు ఆప్టిమైజేషన్‌లతో ఉంటాయి. PyTorchలో సంఖ్యాపరమైన డేటాను నిల్వ చేయడానికి మరియు మార్చడానికి టెన్సర్‌లు ప్రాథమిక వస్తువులు కాబట్టి, అవి స్కేలర్‌ల (0-డైమెన్షనల్ టెన్సర్‌లు) నుండి వెక్టర్స్ (1-డైమెన్షనల్ టెన్సర్‌లు), మాత్రికలు (2-డైమెన్షనల్ టెన్సర్‌లు) మరియు అధిక పరిమాణాలను కలిగి ఉంటాయి. -డైమెన్షనల్ టెన్సర్‌లు.

టెన్సర్‌ల యొక్క అతిపెద్ద ప్రయోజనాల్లో ఒకటి సమర్థవంతమైన గణిత కార్యకలాపాలను నిర్వహించగల సామర్థ్యం. టెన్సర్‌లు కూడిక, తీసివేత, గుణకారం మరియు భాగహారం వంటి మూలకాల వారీ ఆపరేషన్‌లు మరియు మాతృక గుణకారం మరియు బదిలీ వంటి మాతృక కార్యకలాపాలతో సహా అనేక రకాల అంకగణిత కార్యకలాపాలకు మద్దతు ఇస్తాయి.

PyTorch టెన్సర్‌లను మార్చడానికి సమగ్రమైన విధులు మరియు పద్ధతులను అందిస్తుంది. వీటిలో టెన్సర్‌లను పునర్నిర్మించడం, నిర్దిష్ట మూలకాలు లేదా ఉప-టెన్సర్‌లను సంగ్రహించడం మరియు టెన్సర్‌లను నిర్దేశిత పరిమాణాలతో కలపడం లేదా విభజించడం వంటి కార్యకలాపాలు ఉన్నాయి. అదనంగా, PyTorch వివిధ ఆకారాలు మరియు పరిమాణాల టెన్సర్‌లతో పని చేయడాన్ని సులభతరం చేసే టెన్సర్‌లను ఇండెక్సింగ్, స్లైసింగ్ మరియు ప్రసారం కోసం కార్యాచరణలను అందిస్తుంది.







ఈ కథనంలో, మేము PyTorchలో టెన్సర్‌లతో ప్రాథమిక కార్యకలాపాలను నేర్చుకుంటాము, టెన్సర్‌లను ఎలా సృష్టించాలో, ప్రాథమిక కార్యకలాపాలను ఎలా నిర్వహించాలో, వాటి ఆకారాన్ని మార్చడం మరియు CPU మరియు GPU మధ్య వాటిని ఎలా తరలించాలో అన్వేషిస్తాము.



టెన్సర్‌లను సృష్టిస్తోంది

PyTorchలోని టెన్సర్‌లను అనేక విధాలుగా సృష్టించవచ్చు. కొన్ని సాధారణ పద్ధతులను అన్వేషిద్దాం.



టెన్సర్‌ని సృష్టించడానికి, మనం “torch.Tensor” క్లాస్ లేదా “torch.tensor” ఫంక్షన్‌ని ఉపయోగించవచ్చు. కొన్ని ఉదాహరణలను చూద్దాం:





దిగుమతి మంట

#ని సృష్టించండి 1 - పైథాన్ జాబితా నుండి డైమెన్షనల్ టెన్సర్
టెన్సర్_1డి = మంట. టెన్సర్ ( [ 1 , 2 , 3 , 4 , 5 ] )
ముద్రణ ( టెన్సర్_1డి )

#ని సృష్టించండి 2 - సమూహ పైథాన్ జాబితా నుండి డైమెన్షనల్ టెన్సర్
టెన్సర్_2డి = మంట. టెన్సర్ ( [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] ] )
ముద్రణ ( టెన్సర్_2డి )

# నిర్దిష్ట ఆకారంతో సున్నాల టెన్సర్‌ను సృష్టించండి
సున్నాలు_టెన్సర్ = మంట. సున్నాలు ( 3 , 2 )
ముద్రణ ( సున్నాలు_టెన్సర్ )

# నిర్దిష్ట ఆకారంతో వాటి యొక్క టెన్సర్‌ను సృష్టించండి
వన్స్_టెన్సర్ = మంట. వాటిని ( 2 , 3 )
ముద్రణ ( వన్స్_టెన్సర్ )

# ఏకరీతి పంపిణీ నుండి యాదృచ్ఛిక విలువలతో టెన్సర్‌ను సృష్టించండి
యాదృచ్ఛిక_టెన్సర్ = మంట. రాండ్ ( 2 , 2 )
ముద్రణ ( యాదృచ్ఛిక_టెన్సర్ )

ఇవ్వబడిన ఉదాహరణలలో, మేము వివిధ ఆకృతుల యొక్క టెన్సర్‌లను సృష్టిస్తాము మరియు నిర్దిష్ట సంఖ్యలు, సున్నాలు, వన్స్ లేదా యాదృచ్ఛిక విలువలు వంటి వివిధ విలువలతో వాటిని ప్రారంభిస్తాము. మీరు మునుపటి కోడ్ స్నిప్పెట్‌ని అమలు చేసినప్పుడు మీరు ఇలాంటి అవుట్‌పుట్‌ని చూడాలి:



టెన్సర్ ఆపరేషన్స్

మేము టెన్సర్‌లను కలిగి ఉన్న తర్వాత, వాటిపై మూలకాల వారీగా అంకగణిత కార్యకలాపాలు, మ్యాట్రిక్స్ ఆపరేషన్‌లు మరియు మరిన్నింటి వంటి వివిధ ఆపరేషన్‌లను మనం చేయవచ్చు.

ఎలిమెంట్-వైజ్ అరిథ్మెటిక్ ఆపరేషన్స్

మూలకాల వారీగా అంకగణిత కార్యకలాపాలు మూలకం-ద్వారా-మూలకం ఆధారంగా టెన్సర్‌ల మధ్య గణనలను నిర్వహించడానికి మాకు అనుమతిస్తాయి. ఆపరేషన్‌లో పాల్గొన్న టెన్సర్‌లు ఒకే ఆకారాన్ని కలిగి ఉండాలి.

ఇవి కొన్ని ఉదాహరణలు:

దిగుమతి మంట

# టెన్సర్‌లను సృష్టించండి
టెన్సర్1 = మంట. టెన్సర్ ( [ 1 , 2 , 3 ] )
టెన్సర్2 = మంట. టెన్సర్ ( [ 4 , 5 , 6 ] )

# అదనంగా
అదనంగా = టెన్సర్1 + టెన్సర్2
ముద్రణ ( 'అదనంగా:' , అదనంగా )

# తీసివేత
తీసివేత = టెన్సర్1 - టెన్సర్2
ముద్రణ ( 'వ్యవకలనం:' , తీసివేత )

# గుణకారం
గుణకారం = టెన్సర్1 * టెన్సర్2
ముద్రణ ( 'గుణకారం:' , గుణకారం )

# విభజన
విభజన = టెన్సర్1 / టెన్సర్2
ముద్రణ ( 'విభజన:' , విభజన )

ఇచ్చిన కోడ్‌లో, మేము రెండు టెన్సర్‌ల మధ్య కూడిక, తీసివేత, గుణకారం మరియు విభజన కార్యకలాపాలను నిర్వహిస్తాము, దీని ఫలితంగా కంప్యూటెడ్ విలువలతో కొత్త టెన్సర్ వస్తుంది. కోడ్ స్నిప్పెట్ యొక్క ఫలితం క్రింది విధంగా చూపబడింది:

మ్యాట్రిక్స్ కార్యకలాపాలు

PyTorch మాతృక గుణకారం మరియు ట్రాన్స్‌పోజ్ వంటి టెన్సర్‌ల కోసం సమర్థవంతమైన మ్యాట్రిక్స్ ఆపరేషన్‌లను అందిస్తుంది. లీనియర్ ఆల్జీబ్రా మరియు న్యూరల్ నెట్‌వర్క్ గణనల వంటి పనులకు ఈ ఆపరేషన్‌లు ప్రత్యేకంగా ఉపయోగపడతాయి.

దిగుమతి మంట

# టెన్సర్‌లను సృష్టించండి
టెన్సర్1 = మంట. టెన్సర్ ( [ [ 1 , 2 ] , [ 3 , 4 ] ] )
టెన్సర్2 = మంట. టెన్సర్ ( [ [ 5 , 6 ] , [ 7 , 8 ] ] )

# మాతృక గుణకారం
మాతృక_ఉత్పత్తి = మంట. చాప ( టెన్సర్1 , టెన్సర్2 )
ముద్రణ ( 'మ్యాట్రిక్స్ ఉత్పత్తి:' , మాతృక_ఉత్పత్తి )

# మ్యాట్రిక్స్ ట్రాన్స్‌పోజ్
మాతృక_మార్పిడి = టెన్సర్1. టి
ముద్రణ ( 'మ్యాట్రిక్స్ ట్రాన్స్‌పోజ్:' , మాతృక_మార్పిడి )

ఇచ్చిన ఉదాహరణలో, మేము 'torch.matmul' ఫంక్షన్‌ని ఉపయోగించి మాతృక గుణకారాన్ని నిర్వహిస్తాము మరియు '.T' లక్షణాన్ని ఉపయోగించి మాతృక యొక్క బదిలీని పొందుతాము.

టెన్సర్ షేప్ మానిప్యులేషన్

టెన్సర్‌లపై ఆపరేషన్‌లు చేయడంతో పాటు, నిర్దిష్ట అవసరాలకు సరిపోయేలా మేము తరచుగా వాటి ఆకారాన్ని మార్చవలసి ఉంటుంది. PyTorch టెన్సర్‌లను రీషేప్ చేయడానికి అనేక ఫంక్షన్‌లను అందిస్తుంది. ఈ ఫంక్షన్లలో కొన్నింటిని అన్వేషిద్దాం:

దిగుమతి మంట

# టెన్సర్‌ను సృష్టించండి
టెన్సర్ = మంట. టెన్సర్ ( [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] ] )

# టెన్సర్‌ను మళ్లీ ఆకృతి చేయండి
పునర్నిర్మించిన_టెన్సర్ = టెన్సర్. పునర్నిర్మించు ( 3 , 2 )
ముద్రణ ( 'పునరాకృతి టెన్సర్:' , పునర్నిర్మించిన_టెన్సర్ )

# టెన్సర్ పరిమాణాన్ని పొందండి
పరిమాణం = టెన్సర్. పరిమాణం ( )
ముద్రణ ( 'టెన్సర్ పరిమాణం:' , పరిమాణం )

# మూలకాల సంఖ్యను పొందండి లో ఒక టెన్సర్
ఎలిమెంట్స్_సంఖ్య = టెన్సర్. పేరు ఇవ్వండి ( )
ముద్రణ ( 'మూలకాల సంఖ్య:' , ఎలిమెంట్స్_సంఖ్య )

అందించిన కోడ్‌లో, మేము రీషేప్ ఫంక్షన్‌ని ఉపయోగించి టెన్సర్‌ను రీషేప్ చేస్తాము, సైజు పద్ధతిని ఉపయోగించి టెన్సర్ పరిమాణాన్ని తిరిగి పొందుతాము మరియు న్యూమల్ పద్ధతిని ఉపయోగించి టెన్సర్‌లోని మొత్తం మూలకాల సంఖ్యను పొందుతాము.

CPU మరియు GPU మధ్య మూవింగ్ టెన్సర్‌లు

PyTorch GPU త్వరణానికి మద్దతును అందిస్తుంది, ఇది గ్రాఫిక్స్ కార్డ్‌లపై గణనలను నిర్వహించడానికి అనుమతిస్తుంది, ఇది శిక్షణ సమయాన్ని తగ్గించడం ద్వారా లోతైన అభ్యాస పనులను గణనీయంగా వేగవంతం చేస్తుంది. మేము 'to' పద్ధతిని ఉపయోగించి CPU మరియు GPU మధ్య టెన్సర్‌లను తరలించవచ్చు.

గమనిక : మీరు మీ మెషీన్‌లో CUDAతో NVIDIA GPUని కలిగి ఉంటే మాత్రమే ఇది చేయబడుతుంది.

దిగుమతి మంట

# CPUలో టెన్సర్‌ను సృష్టించండి
టెన్సర్_సిపియు = మంట. టెన్సర్ ( [ 1 , 2 , 3 ] )

# తనిఖీ ఉంటే GPU అందుబాటులో ఉంది
ఉంటే మంట. భిన్నమైనది . అందుబాటులో ఉంది ( ) :
# టెన్సర్‌ను GPUకి తరలించండి
టెన్సర్_జిపియు = టెన్సర్_సిపియు. కు ( 'భిన్నమైన' )
ముద్రణ ( 'GPUలో టెన్సర్:' , టెన్సర్_జిపియు )
లేకపోతే :
ముద్రణ ( 'GPU అందుబాటులో లేదు.' )

అందించిన కోడ్‌లో, మేము torch.cuda.is_available()ని ఉపయోగించి GPU అందుబాటులో ఉందో లేదో తనిఖీ చేస్తాము. GPU అందుబాటులో ఉంటే, మేము టెన్సర్‌ను CPU నుండి GPUకి “కుడా” ఆర్గ్యుమెంట్‌తో “టు” పద్ధతిని ఉపయోగించి తరలిస్తాము.

ముగింపు

PyTorchతో పని చేయడానికి మరియు లోతైన అభ్యాస నమూనాలను రూపొందించడానికి ప్రాథమిక టెన్సర్ కార్యకలాపాలను అర్థం చేసుకోవడం చాలా కీలకం. ఈ కథనంలో, మేము టెన్సర్‌లను ఎలా సృష్టించాలో, ప్రాథమిక కార్యకలాపాలను నిర్వహించాలో, వాటి ఆకారాన్ని మార్చడం మరియు వాటిని CPU మరియు GPU మధ్య ఎలా తరలించాలో అన్వేషించాము. ఈ పరిజ్ఞానంతో సాయుధమై, మీరు ఇప్పుడు PyTorchలో టెన్సర్‌లతో పని చేయడం ప్రారంభించవచ్చు, గణనలను నిర్వహించవచ్చు మరియు అధునాతన లోతైన అభ్యాస నమూనాలను రూపొందించవచ్చు. PyTorchలో డేటా ప్రాతినిధ్యం మరియు మానిప్యులేషన్‌కు టెన్సర్‌లు పునాదిగా పనిచేస్తాయి, ఇది ఈ బహుముఖ మెషిన్-లెర్నింగ్ ఫ్రేమ్‌వర్క్ యొక్క పూర్తి శక్తిని ఆవిష్కరించడానికి మిమ్మల్ని అనుమతిస్తుంది.