| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014 |
- # mypy: allow-untyped-defs
- """Adds docstrings to Tensor functions"""
- import torch._C
- from torch._C import _add_docstr as add_docstr
- from torch._torch_docs import parse_kwargs, reproducibility_notes
- def add_docstr_all(method: str, docstr: str) -> None:
- add_docstr(getattr(torch._C.TensorBase, method), docstr)
- common_args = parse_kwargs(
- """
- memory_format (:class:`torch.memory_format`, optional): the desired memory format of
- returned Tensor. Default: ``torch.preserve_format``.
- """
- )
- new_common_args = parse_kwargs(
- """
- size (int...): a list, tuple, or :class:`torch.Size` of integers defining the
- shape of the output tensor.
- dtype (:class:`torch.dtype`, optional): the desired type of returned tensor.
- Default: if None, same :class:`torch.dtype` as this tensor.
- device (:class:`torch.device`, optional): the desired device of returned tensor.
- Default: if None, same :class:`torch.device` as this tensor.
- requires_grad (bool, optional): If autograd should record operations on the
- returned tensor. Default: ``False``.
- pin_memory (bool, optional): If set, returned tensor would be allocated in
- the pinned memory. Works only for CPU tensors. Default: ``False``.
- layout (:class:`torch.layout`, optional): the desired layout of returned Tensor.
- Default: ``torch.strided``.
- """
- )
- add_docstr_all(
- "new_tensor",
- """
- new_tensor(data, *, dtype=None, device=None, requires_grad=False, layout=torch.strided, \
- pin_memory=False) -> Tensor
- """
- + r"""
- Returns a new Tensor with :attr:`data` as the tensor data.
- By default, the returned Tensor has the same :class:`torch.dtype` and
- :class:`torch.device` as this tensor.
- .. warning::
- :func:`new_tensor` always copies :attr:`data`. If you have a Tensor
- ``data`` and want to avoid a copy, use :func:`torch.Tensor.requires_grad_`
- or :func:`torch.Tensor.detach`.
- If you have a numpy array and want to avoid a copy, use
- :func:`torch.from_numpy`.
- .. warning::
- When data is a tensor `x`, :func:`new_tensor()` reads out 'the data' from whatever it is passed,
- and constructs a leaf variable. Therefore ``tensor.new_tensor(x)`` is equivalent to ``x.detach().clone()``
- and ``tensor.new_tensor(x, requires_grad=True)`` is equivalent to ``x.detach().clone().requires_grad_(True)``.
- The equivalents using ``detach()`` and ``clone()`` are recommended.
- Args:
- data (array_like): The returned Tensor copies :attr:`data`.
- Keyword args:
- {dtype}
- {device}
- {requires_grad}
- {layout}
- {pin_memory}
- Example::
- >>> tensor = torch.ones((2,), dtype=torch.int8)
- >>> data = [[0, 1], [2, 3]]
- >>> tensor.new_tensor(data)
- tensor([[ 0, 1],
- [ 2, 3]], dtype=torch.int8)
- """.format(**new_common_args),
- )
- add_docstr_all(
- "new_full",
- """
- new_full(size, fill_value, *, dtype=None, device=None, requires_grad=False, layout=torch.strided, \
- pin_memory=False) -> Tensor
- """
- + r"""
- Returns a Tensor of size :attr:`size` filled with :attr:`fill_value`.
- By default, the returned Tensor has the same :class:`torch.dtype` and
- :class:`torch.device` as this tensor.
- Args:
- fill_value (scalar): the number to fill the output tensor with.
- Keyword args:
- {dtype}
- {device}
- {requires_grad}
- {layout}
- {pin_memory}
- Example::
- >>> tensor = torch.ones((2,), dtype=torch.float64)
- >>> tensor.new_full((3, 4), 3.141592)
- tensor([[ 3.1416, 3.1416, 3.1416, 3.1416],
- [ 3.1416, 3.1416, 3.1416, 3.1416],
- [ 3.1416, 3.1416, 3.1416, 3.1416]], dtype=torch.float64)
- """.format(**new_common_args),
- )
- add_docstr_all(
- "new_empty",
- """
- new_empty(size, *, dtype=None, device=None, requires_grad=False, layout=torch.strided, \
- pin_memory=False) -> Tensor
- """
- + r"""
- Returns a Tensor of size :attr:`size` filled with uninitialized data.
- By default, the returned Tensor has the same :class:`torch.dtype` and
- :class:`torch.device` as this tensor.
- Args:
- size (int...): a list, tuple, or :class:`torch.Size` of integers defining the
- shape of the output tensor.
- Keyword args:
- {dtype}
- {device}
- {requires_grad}
- {layout}
- {pin_memory}
- Example::
- >>> tensor = torch.ones(())
- >>> tensor.new_empty((2, 3))
- tensor([[ 5.8182e-18, 4.5765e-41, -1.0545e+30],
- [ 3.0949e-41, 4.4842e-44, 0.0000e+00]])
- """.format(**new_common_args),
- )
- add_docstr_all(
- "new_empty_strided",
- """
- new_empty_strided(size, stride, dtype=None, device=None, requires_grad=False, layout=torch.strided, \
- pin_memory=False) -> Tensor
- """
- + r"""
- Returns a Tensor of size :attr:`size` and strides :attr:`stride` filled with
- uninitialized data. By default, the returned Tensor has the same
- :class:`torch.dtype` and :class:`torch.device` as this tensor.
- Args:
- size (int...): a list, tuple, or :class:`torch.Size` of integers defining the
- shape of the output tensor.
- Keyword args:
- {dtype}
- {device}
- {requires_grad}
- {layout}
- {pin_memory}
- Example::
- >>> tensor = torch.ones(())
- >>> tensor.new_empty_strided((2, 3), (3, 1))
- tensor([[ 5.8182e-18, 4.5765e-41, -1.0545e+30],
- [ 3.0949e-41, 4.4842e-44, 0.0000e+00]])
- """.format(**new_common_args),
- )
- add_docstr_all(
- "new_ones",
- """
- new_ones(size, *, dtype=None, device=None, requires_grad=False, layout=torch.strided, \
- pin_memory=False) -> Tensor
- """
- + r"""
- Returns a Tensor of size :attr:`size` filled with ``1``.
- By default, the returned Tensor has the same :class:`torch.dtype` and
- :class:`torch.device` as this tensor.
- Args:
- size (int...): a list, tuple, or :class:`torch.Size` of integers defining the
- shape of the output tensor.
- Keyword args:
- {dtype}
- {device}
- {requires_grad}
- {layout}
- {pin_memory}
- Example::
- >>> tensor = torch.tensor((), dtype=torch.int32)
- >>> tensor.new_ones((2, 3))
- tensor([[ 1, 1, 1],
- [ 1, 1, 1]], dtype=torch.int32)
- """.format(**new_common_args),
- )
- add_docstr_all(
- "new_zeros",
- """
- new_zeros(size, *, dtype=None, device=None, requires_grad=False, layout=torch.strided, \
- pin_memory=False) -> Tensor
- """
- + r"""
- Returns a Tensor of size :attr:`size` filled with ``0``.
- By default, the returned Tensor has the same :class:`torch.dtype` and
- :class:`torch.device` as this tensor.
- Args:
- size (int...): a list, tuple, or :class:`torch.Size` of integers defining the
- shape of the output tensor.
- Keyword args:
- {dtype}
- {device}
- {requires_grad}
- {layout}
- {pin_memory}
- Example::
- >>> tensor = torch.tensor((), dtype=torch.float64)
- >>> tensor.new_zeros((2, 3))
- tensor([[ 0., 0., 0.],
- [ 0., 0., 0.]], dtype=torch.float64)
- """.format(**new_common_args),
- )
- add_docstr_all(
- "abs",
- r"""
- abs() -> Tensor
- See :func:`torch.abs`
- """,
- )
- add_docstr_all(
- "abs_",
- r"""
- abs_() -> Tensor
- In-place version of :meth:`~Tensor.abs`
- """,
- )
- add_docstr_all(
- "absolute",
- r"""
- absolute() -> Tensor
- Alias for :func:`abs`
- """,
- )
- add_docstr_all(
- "absolute_",
- r"""
- absolute_() -> Tensor
- In-place version of :meth:`~Tensor.absolute`
- Alias for :func:`abs_`
- """,
- )
- add_docstr_all(
- "acos",
- r"""
- acos() -> Tensor
- See :func:`torch.acos`
- """,
- )
- add_docstr_all(
- "acos_",
- r"""
- acos_() -> Tensor
- In-place version of :meth:`~Tensor.acos`
- """,
- )
- add_docstr_all(
- "arccos",
- r"""
- arccos() -> Tensor
- See :func:`torch.arccos`
- """,
- )
- add_docstr_all(
- "arccos_",
- r"""
- arccos_() -> Tensor
- In-place version of :meth:`~Tensor.arccos`
- """,
- )
- add_docstr_all(
- "acosh",
- r"""
- acosh() -> Tensor
- See :func:`torch.acosh`
- """,
- )
- add_docstr_all(
- "acosh_",
- r"""
- acosh_() -> Tensor
- In-place version of :meth:`~Tensor.acosh`
- """,
- )
- add_docstr_all(
- "arccosh",
- r"""
- acosh() -> Tensor
- See :func:`torch.arccosh`
- """,
- )
- add_docstr_all(
- "arccosh_",
- r"""
- acosh_() -> Tensor
- In-place version of :meth:`~Tensor.arccosh`
- """,
- )
- add_docstr_all(
- "add",
- r"""
- add(other, *, alpha=1) -> Tensor
- Add a scalar or tensor to :attr:`self` tensor. If both :attr:`alpha`
- and :attr:`other` are specified, each element of :attr:`other` is scaled by
- :attr:`alpha` before being used.
- When :attr:`other` is a tensor, the shape of :attr:`other` must be
- :ref:`broadcastable <broadcasting-semantics>` with the shape of the underlying
- tensor
- See :func:`torch.add`
- """,
- )
- add_docstr_all(
- "add_",
- r"""
- add_(other, *, alpha=1) -> Tensor
- In-place version of :meth:`~Tensor.add`
- """,
- )
- add_docstr_all(
- "addbmm",
- r"""
- addbmm(batch1, batch2, *, beta=1, alpha=1) -> Tensor
- See :func:`torch.addbmm`
- """,
- )
- add_docstr_all(
- "addbmm_",
- r"""
- addbmm_(batch1, batch2, *, beta=1, alpha=1) -> Tensor
- In-place version of :meth:`~Tensor.addbmm`
- """,
- )
- add_docstr_all(
- "addcdiv",
- r"""
- addcdiv(tensor1, tensor2, *, value=1) -> Tensor
- See :func:`torch.addcdiv`
- """,
- )
- add_docstr_all(
- "addcdiv_",
- r"""
- addcdiv_(tensor1, tensor2, *, value=1) -> Tensor
- In-place version of :meth:`~Tensor.addcdiv`
- """,
- )
- add_docstr_all(
- "addcmul",
- r"""
- addcmul(tensor1, tensor2, *, value=1) -> Tensor
- See :func:`torch.addcmul`
- """,
- )
- add_docstr_all(
- "addcmul_",
- r"""
- addcmul_(tensor1, tensor2, *, value=1) -> Tensor
- In-place version of :meth:`~Tensor.addcmul`
- """,
- )
- add_docstr_all(
- "addmm",
- r"""
- addmm(mat1, mat2, *, beta=1, alpha=1) -> Tensor
- See :func:`torch.addmm`
- """,
- )
- add_docstr_all(
- "addmm_",
- r"""
- addmm_(mat1, mat2, *, beta=1, alpha=1) -> Tensor
- In-place version of :meth:`~Tensor.addmm`
- """,
- )
- add_docstr_all(
- "addmv",
- r"""
- addmv(mat, vec, *, beta=1, alpha=1) -> Tensor
- See :func:`torch.addmv`
- """,
- )
- add_docstr_all(
- "addmv_",
- r"""
- addmv_(mat, vec, *, beta=1, alpha=1) -> Tensor
- In-place version of :meth:`~Tensor.addmv`
- """,
- )
- add_docstr_all(
- "sspaddmm",
- r"""
- sspaddmm(mat1, mat2, *, beta=1, alpha=1) -> Tensor
- See :func:`torch.sspaddmm`
- """,
- )
- add_docstr_all(
- "smm",
- r"""
- smm(mat) -> Tensor
- See :func:`torch.smm`
- """,
- )
- add_docstr_all(
- "addr",
- r"""
- addr(vec1, vec2, *, beta=1, alpha=1) -> Tensor
- See :func:`torch.addr`
- """,
- )
- add_docstr_all(
- "addr_",
- r"""
- addr_(vec1, vec2, *, beta=1, alpha=1) -> Tensor
- In-place version of :meth:`~Tensor.addr`
- """,
- )
- add_docstr_all(
- "align_as",
- r"""
- align_as(other) -> Tensor
- Permutes the dimensions of the :attr:`self` tensor to match the dimension order
- in the :attr:`other` tensor, adding size-one dims for any new names.
- This operation is useful for explicit broadcasting by names (see examples).
- All of the dims of :attr:`self` must be named in order to use this method.
- The resulting tensor is a view on the original tensor.
- All dimension names of :attr:`self` must be present in ``other.names``.
- :attr:`other` may contain named dimensions that are not in ``self.names``;
- the output tensor has a size-one dimension for each of those new names.
- To align a tensor to a specific order, use :meth:`~Tensor.align_to`.
- Examples::
- # Example 1: Applying a mask
- >>> mask = torch.randint(2, [127, 128], dtype=torch.bool).refine_names('W', 'H')
- >>> imgs = torch.randn(32, 128, 127, 3, names=('N', 'H', 'W', 'C'))
- >>> imgs.masked_fill_(mask.align_as(imgs), 0)
- # Example 2: Applying a per-channel-scale
- >>> def scale_channels(input, scale):
- >>> scale = scale.refine_names('C')
- >>> return input * scale.align_as(input)
- >>> num_channels = 3
- >>> scale = torch.randn(num_channels, names=('C',))
- >>> imgs = torch.rand(32, 128, 128, num_channels, names=('N', 'H', 'W', 'C'))
- >>> more_imgs = torch.rand(32, num_channels, 128, 128, names=('N', 'C', 'H', 'W'))
- >>> videos = torch.randn(3, num_channels, 128, 128, 128, names=('N', 'C', 'H', 'W', 'D'))
- # scale_channels is agnostic to the dimension order of the input
- >>> scale_channels(imgs, scale)
- >>> scale_channels(more_imgs, scale)
- >>> scale_channels(videos, scale)
- .. warning::
- The named tensor API is experimental and subject to change.
- """,
- )
- add_docstr_all(
- "all",
- r"""
- all(dim=None, keepdim=False) -> Tensor
- See :func:`torch.all`
- """,
- )
- add_docstr_all(
- "allclose",
- r"""
- allclose(other, rtol=1e-05, atol=1e-08, equal_nan=False) -> Tensor
- See :func:`torch.allclose`
- """,
- )
- add_docstr_all(
- "angle",
- r"""
- angle() -> Tensor
- See :func:`torch.angle`
- """,
- )
- add_docstr_all(
- "any",
- r"""
- any(dim=None, keepdim=False) -> Tensor
- See :func:`torch.any`
- """,
- )
- add_docstr_all(
- "apply_",
- r"""
- apply_(callable) -> Tensor
- Applies the function :attr:`callable` to each element in the tensor, replacing
- each element with the value returned by :attr:`callable`.
- .. note::
- This function only works with CPU tensors and should not be used in code
- sections that require high performance.
- """,
- )
- add_docstr_all(
- "asin",
- r"""
- asin() -> Tensor
- See :func:`torch.asin`
- """,
- )
- add_docstr_all(
- "asin_",
- r"""
- asin_() -> Tensor
- In-place version of :meth:`~Tensor.asin`
- """,
- )
- add_docstr_all(
- "arcsin",
- r"""
- arcsin() -> Tensor
- See :func:`torch.arcsin`
- """,
- )
- add_docstr_all(
- "arcsin_",
- r"""
- arcsin_() -> Tensor
- In-place version of :meth:`~Tensor.arcsin`
- """,
- )
- add_docstr_all(
- "asinh",
- r"""
- asinh() -> Tensor
- See :func:`torch.asinh`
- """,
- )
- add_docstr_all(
- "asinh_",
- r"""
- asinh_() -> Tensor
- In-place version of :meth:`~Tensor.asinh`
- """,
- )
- add_docstr_all(
- "arcsinh",
- r"""
- arcsinh() -> Tensor
- See :func:`torch.arcsinh`
- """,
- )
- add_docstr_all(
- "arcsinh_",
- r"""
- arcsinh_() -> Tensor
- In-place version of :meth:`~Tensor.arcsinh`
- """,
- )
- add_docstr_all(
- "as_strided",
- r"""
- as_strided(size, stride, storage_offset=None) -> Tensor
- See :func:`torch.as_strided`
- """,
- )
- add_docstr_all(
- "as_strided_",
- r"""
- as_strided_(size, stride, storage_offset=None) -> Tensor
- In-place version of :meth:`~Tensor.as_strided`
- """,
- )
- add_docstr_all(
- "atan",
- r"""
- atan() -> Tensor
- See :func:`torch.atan`
- """,
- )
- add_docstr_all(
- "atan_",
- r"""
- atan_() -> Tensor
- In-place version of :meth:`~Tensor.atan`
- """,
- )
- add_docstr_all(
- "arctan",
- r"""
- arctan() -> Tensor
- See :func:`torch.arctan`
- """,
- )
- add_docstr_all(
- "arctan_",
- r"""
- arctan_() -> Tensor
- In-place version of :meth:`~Tensor.arctan`
- """,
- )
- add_docstr_all(
- "atan2",
- r"""
- atan2(other) -> Tensor
- See :func:`torch.atan2`
- """,
- )
- add_docstr_all(
- "atan2_",
- r"""
- atan2_(other) -> Tensor
- In-place version of :meth:`~Tensor.atan2`
- """,
- )
- add_docstr_all(
- "arctan2",
- r"""
- arctan2(other) -> Tensor
- See :func:`torch.arctan2`
- """,
- )
- add_docstr_all(
- "arctan2_",
- r"""
- atan2_(other) -> Tensor
- In-place version of :meth:`~Tensor.arctan2`
- """,
- )
- add_docstr_all(
- "atanh",
- r"""
- atanh() -> Tensor
- See :func:`torch.atanh`
- """,
- )
- add_docstr_all(
- "atanh_",
- r"""
- atanh_(other) -> Tensor
- In-place version of :meth:`~Tensor.atanh`
- """,
- )
- add_docstr_all(
- "arctanh",
- r"""
- arctanh() -> Tensor
- See :func:`torch.arctanh`
- """,
- )
- add_docstr_all(
- "arctanh_",
- r"""
- arctanh_(other) -> Tensor
- In-place version of :meth:`~Tensor.arctanh`
- """,
- )
- add_docstr_all(
- "baddbmm",
- r"""
- baddbmm(batch1, batch2, *, beta=1, alpha=1) -> Tensor
- See :func:`torch.baddbmm`
- """,
- )
- add_docstr_all(
- "baddbmm_",
- r"""
- baddbmm_(batch1, batch2, *, beta=1, alpha=1) -> Tensor
- In-place version of :meth:`~Tensor.baddbmm`
- """,
- )
- add_docstr_all(
- "bernoulli",
- r"""
- bernoulli(*, generator=None) -> Tensor
- Returns a result tensor where each :math:`\texttt{result[i]}` is independently
- sampled from :math:`\text{Bernoulli}(\texttt{self[i]})`. :attr:`self` must have
- floating point ``dtype``, and the result will have the same ``dtype``.
- See :func:`torch.bernoulli`
- """,
- )
- add_docstr_all(
- "bernoulli_",
- r"""
- bernoulli_(p=0.5, *, generator=None) -> Tensor
- Fills each location of :attr:`self` with an independent sample from
- :math:`\text{Bernoulli}(\texttt{p})`. :attr:`self` can have integral
- ``dtype``.
- :attr:`p` should either be a scalar or tensor containing probabilities to be
- used for drawing the binary random number.
- If it is a tensor, the :math:`\text{i}^{th}` element of :attr:`self` tensor
- will be set to a value sampled from
- :math:`\text{Bernoulli}(\texttt{p\_tensor[i]})`. In this case `p` must have
- floating point ``dtype``.
- See also :meth:`~Tensor.bernoulli` and :func:`torch.bernoulli`
- """,
- )
- add_docstr_all(
- "bincount",
- r"""
- bincount(weights=None, minlength=0) -> Tensor
- See :func:`torch.bincount`
- """,
- )
- add_docstr_all(
- "bitwise_not",
- r"""
- bitwise_not() -> Tensor
- See :func:`torch.bitwise_not`
- """,
- )
- add_docstr_all(
- "bitwise_not_",
- r"""
- bitwise_not_() -> Tensor
- In-place version of :meth:`~Tensor.bitwise_not`
- """,
- )
- add_docstr_all(
- "bitwise_and",
- r"""
- bitwise_and() -> Tensor
- See :func:`torch.bitwise_and`
- """,
- )
- add_docstr_all(
- "bitwise_and_",
- r"""
- bitwise_and_() -> Tensor
- In-place version of :meth:`~Tensor.bitwise_and`
- """,
- )
- add_docstr_all(
- "bitwise_or",
- r"""
- bitwise_or() -> Tensor
- See :func:`torch.bitwise_or`
- """,
- )
- add_docstr_all(
- "bitwise_or_",
- r"""
- bitwise_or_() -> Tensor
- In-place version of :meth:`~Tensor.bitwise_or`
- """,
- )
- add_docstr_all(
- "bitwise_xor",
- r"""
- bitwise_xor() -> Tensor
- See :func:`torch.bitwise_xor`
- """,
- )
- add_docstr_all(
- "bitwise_xor_",
- r"""
- bitwise_xor_() -> Tensor
- In-place version of :meth:`~Tensor.bitwise_xor`
- """,
- )
- add_docstr_all(
- "bitwise_left_shift",
- r"""
- bitwise_left_shift(other) -> Tensor
- See :func:`torch.bitwise_left_shift`
- """,
- )
- add_docstr_all(
- "bitwise_left_shift_",
- r"""
- bitwise_left_shift_(other) -> Tensor
- In-place version of :meth:`~Tensor.bitwise_left_shift`
- """,
- )
- add_docstr_all(
- "bitwise_right_shift",
- r"""
- bitwise_right_shift(other) -> Tensor
- See :func:`torch.bitwise_right_shift`
- """,
- )
- add_docstr_all(
- "bitwise_right_shift_",
- r"""
- bitwise_right_shift_(other) -> Tensor
- In-place version of :meth:`~Tensor.bitwise_right_shift`
- """,
- )
- add_docstr_all(
- "broadcast_to",
- r"""
- broadcast_to(shape) -> Tensor
- See :func:`torch.broadcast_to`.
- """,
- )
- add_docstr_all(
- "logical_and",
- r"""
- logical_and() -> Tensor
- See :func:`torch.logical_and`
- """,
- )
- add_docstr_all(
- "logical_and_",
- r"""
- logical_and_() -> Tensor
- In-place version of :meth:`~Tensor.logical_and`
- """,
- )
- add_docstr_all(
- "logical_not",
- r"""
- logical_not() -> Tensor
- See :func:`torch.logical_not`
- """,
- )
- add_docstr_all(
- "logical_not_",
- r"""
- logical_not_() -> Tensor
- In-place version of :meth:`~Tensor.logical_not`
- """,
- )
- add_docstr_all(
- "logical_or",
- r"""
- logical_or() -> Tensor
- See :func:`torch.logical_or`
- """,
- )
- add_docstr_all(
- "logical_or_",
- r"""
- logical_or_() -> Tensor
- In-place version of :meth:`~Tensor.logical_or`
- """,
- )
- add_docstr_all(
- "logical_xor",
- r"""
- logical_xor() -> Tensor
- See :func:`torch.logical_xor`
- """,
- )
- add_docstr_all(
- "logical_xor_",
- r"""
- logical_xor_() -> Tensor
- In-place version of :meth:`~Tensor.logical_xor`
- """,
- )
- add_docstr_all(
- "bmm",
- r"""
- bmm(batch2) -> Tensor
- See :func:`torch.bmm`
- """,
- )
- add_docstr_all(
- "cauchy_",
- r"""
- cauchy_(median=0, sigma=1, *, generator=None) -> Tensor
- Fills the tensor with numbers drawn from the Cauchy distribution:
- .. math::
- f(x) = \dfrac{1}{\pi} \dfrac{\sigma}{(x - \text{median})^2 + \sigma^2}
- .. note::
- Sigma (:math:`\sigma`) is used to denote the scale parameter in Cauchy distribution.
- """,
- )
- add_docstr_all(
- "ceil",
- r"""
- ceil() -> Tensor
- See :func:`torch.ceil`
- """,
- )
- add_docstr_all(
- "ceil_",
- r"""
- ceil_() -> Tensor
- In-place version of :meth:`~Tensor.ceil`
- """,
- )
- add_docstr_all(
- "cholesky",
- r"""
- cholesky(upper=False) -> Tensor
- See :func:`torch.cholesky`
- """,
- )
- add_docstr_all(
- "cholesky_solve",
- r"""
- cholesky_solve(input2, upper=False) -> Tensor
- See :func:`torch.cholesky_solve`
- """,
- )
- add_docstr_all(
- "cholesky_inverse",
- r"""
- cholesky_inverse(upper=False) -> Tensor
- See :func:`torch.cholesky_inverse`
- """,
- )
- add_docstr_all(
- "clamp",
- r"""
- clamp(min=None, max=None) -> Tensor
- See :func:`torch.clamp`
- """,
- )
- add_docstr_all(
- "clamp_",
- r"""
- clamp_(min=None, max=None) -> Tensor
- In-place version of :meth:`~Tensor.clamp`
- """,
- )
- add_docstr_all(
- "clip",
- r"""
- clip(min=None, max=None) -> Tensor
- Alias for :meth:`~Tensor.clamp`.
- """,
- )
- add_docstr_all(
- "clip_",
- r"""
- clip_(min=None, max=None) -> Tensor
- Alias for :meth:`~Tensor.clamp_`.
- """,
- )
- add_docstr_all(
- "clone",
- r"""
- clone(*, memory_format=torch.preserve_format) -> Tensor
- See :func:`torch.clone`
- """.format(**common_args),
- )
- add_docstr_all(
- "coalesce",
- r"""
- coalesce() -> Tensor
- Returns a coalesced copy of :attr:`self` if :attr:`self` is an
- :ref:`uncoalesced tensor <sparse-uncoalesced-coo-docs>`.
- Returns :attr:`self` if :attr:`self` is a coalesced tensor.
- .. warning::
- Throws an error if :attr:`self` is not a sparse COO tensor.
- """,
- )
- add_docstr_all(
- "contiguous",
- r"""
- contiguous(memory_format=torch.contiguous_format) -> Tensor
- Returns a contiguous in memory tensor containing the same data as :attr:`self` tensor. If
- :attr:`self` tensor is already in the specified memory format, this function returns the
- :attr:`self` tensor.
- Args:
- memory_format (:class:`torch.memory_format`, optional): the desired memory format of
- returned Tensor. Default: ``torch.contiguous_format``.
- """,
- )
- add_docstr_all(
- "copy_",
- r"""
- copy_(src, non_blocking=False) -> Tensor
- Copies the elements from :attr:`src` into :attr:`self` tensor and returns
- :attr:`self`.
- The :attr:`src` tensor must be :ref:`broadcastable <broadcasting-semantics>`
- with the :attr:`self` tensor. It may be of a different data type or reside on a
- different device.
- Args:
- src (Tensor): the source tensor to copy from
- non_blocking (bool, optional): if ``True`` and this copy is between CPU and GPU,
- the copy may occur asynchronously with respect to the host. For other
- cases, this argument has no effect. Default: ``False``
- """,
- )
- add_docstr_all(
- "conj",
- r"""
- conj() -> Tensor
- See :func:`torch.conj`
- """,
- )
- add_docstr_all(
- "conj_physical",
- r"""
- conj_physical() -> Tensor
- See :func:`torch.conj_physical`
- """,
- )
- add_docstr_all(
- "conj_physical_",
- r"""
- conj_physical_() -> Tensor
- In-place version of :meth:`~Tensor.conj_physical`
- """,
- )
- add_docstr_all(
- "resolve_conj",
- r"""
- resolve_conj() -> Tensor
- See :func:`torch.resolve_conj`
- """,
- )
- add_docstr_all(
- "resolve_neg",
- r"""
- resolve_neg() -> Tensor
- See :func:`torch.resolve_neg`
- """,
- )
- add_docstr_all(
- "copysign",
- r"""
- copysign(other) -> Tensor
- See :func:`torch.copysign`
- """,
- )
- add_docstr_all(
- "copysign_",
- r"""
- copysign_(other) -> Tensor
- In-place version of :meth:`~Tensor.copysign`
- """,
- )
- add_docstr_all(
- "cos",
- r"""
- cos() -> Tensor
- See :func:`torch.cos`
- """,
- )
- add_docstr_all(
- "cos_",
- r"""
- cos_() -> Tensor
- In-place version of :meth:`~Tensor.cos`
- """,
- )
- add_docstr_all(
- "cosh",
- r"""
- cosh() -> Tensor
- See :func:`torch.cosh`
- """,
- )
- add_docstr_all(
- "cosh_",
- r"""
- cosh_() -> Tensor
- In-place version of :meth:`~Tensor.cosh`
- """,
- )
- add_docstr_all(
- "cpu",
- r"""
- cpu(memory_format=torch.preserve_format) -> Tensor
- Returns a copy of this object in CPU memory.
- If this object is already in CPU memory,
- then no copy is performed and the original object is returned.
- Args:
- {memory_format}
- """.format(**common_args),
- )
- add_docstr_all(
- "count_nonzero",
- r"""
- count_nonzero(dim=None) -> Tensor
- See :func:`torch.count_nonzero`
- """,
- )
- add_docstr_all(
- "cov",
- r"""
- cov(*, correction=1, fweights=None, aweights=None) -> Tensor
- See :func:`torch.cov`
- """,
- )
- add_docstr_all(
- "corrcoef",
- r"""
- corrcoef() -> Tensor
- See :func:`torch.corrcoef`
- """,
- )
- add_docstr_all(
- "cross",
- r"""
- cross(other, dim=None) -> Tensor
- See :func:`torch.cross`
- """,
- )
- add_docstr_all(
- "cuda",
- r"""
- cuda(device=None, non_blocking=False, memory_format=torch.preserve_format) -> Tensor
- Returns a copy of this object in CUDA memory.
- If this object is already in CUDA memory and on the correct device,
- then no copy is performed and the original object is returned.
- Args:
- device (:class:`torch.device`, optional): The destination GPU device.
- Defaults to the current CUDA device.
- non_blocking (bool, optional): If ``True`` and the source is in pinned memory,
- the copy will be asynchronous with respect to the host.
- Otherwise, the argument has no effect. Default: ``False``.
- {memory_format}
- """.format(**common_args),
- )
- add_docstr_all(
- "mtia",
- r"""
- mtia(device=None, non_blocking=False, memory_format=torch.preserve_format) -> Tensor
- Returns a copy of this object in MTIA memory.
- If this object is already in MTIA memory and on the correct device,
- then no copy is performed and the original object is returned.
- Args:
- device (:class:`torch.device`, optional): The destination MTIA device.
- Defaults to the current MTIA device.
- non_blocking (bool, optional): If ``True`` and the source is in pinned memory,
- the copy will be asynchronous with respect to the host.
- Otherwise, the argument has no effect. Default: ``False``.
- {memory_format}
- """.format(**common_args),
- )
- add_docstr_all(
- "ipu",
- r"""
- ipu(device=None, non_blocking=False, memory_format=torch.preserve_format) -> Tensor
- Returns a copy of this object in IPU memory.
- If this object is already in IPU memory and on the correct device,
- then no copy is performed and the original object is returned.
- Args:
- device (:class:`torch.device`, optional): The destination IPU device.
- Defaults to the current IPU device.
- non_blocking (bool, optional): If ``True`` and the source is in pinned memory,
- the copy will be asynchronous with respect to the host.
- Otherwise, the argument has no effect. Default: ``False``.
- {memory_format}
- """.format(**common_args),
- )
- add_docstr_all(
- "xpu",
- r"""
- xpu(device=None, non_blocking=False, memory_format=torch.preserve_format) -> Tensor
- Returns a copy of this object in XPU memory.
- If this object is already in XPU memory and on the correct device,
- then no copy is performed and the original object is returned.
- Args:
- device (:class:`torch.device`, optional): The destination XPU device.
- Defaults to the current XPU device.
- non_blocking (bool, optional): If ``True`` and the source is in pinned memory,
- the copy will be asynchronous with respect to the host.
- Otherwise, the argument has no effect. Default: ``False``.
- {memory_format}
- """.format(**common_args),
- )
- add_docstr_all(
- "logcumsumexp",
- r"""
- logcumsumexp(dim) -> Tensor
- See :func:`torch.logcumsumexp`
- """,
- )
- add_docstr_all(
- "cummax",
- r"""
- cummax(dim) -> (Tensor, Tensor)
- See :func:`torch.cummax`
- """,
- )
- add_docstr_all(
- "cummin",
- r"""
- cummin(dim) -> (Tensor, Tensor)
- See :func:`torch.cummin`
- """,
- )
- add_docstr_all(
- "cumprod",
- r"""
- cumprod(dim, dtype=None) -> Tensor
- See :func:`torch.cumprod`
- """,
- )
- add_docstr_all(
- "cumprod_",
- r"""
- cumprod_(dim, dtype=None) -> Tensor
- In-place version of :meth:`~Tensor.cumprod`
- """,
- )
- add_docstr_all(
- "cumsum",
- r"""
- cumsum(dim, dtype=None) -> Tensor
- See :func:`torch.cumsum`
- """,
- )
- add_docstr_all(
- "cumsum_",
- r"""
- cumsum_(dim, dtype=None) -> Tensor
- In-place version of :meth:`~Tensor.cumsum`
- """,
- )
- add_docstr_all(
- "data_ptr",
- r"""
- data_ptr() -> int
- Returns the address of the first element of :attr:`self` tensor.
- """,
- )
- add_docstr_all(
- "dequantize",
- r"""
- dequantize() -> Tensor
- Given a quantized Tensor, dequantize it and return the dequantized float Tensor.
- """,
- )
- add_docstr_all(
- "dense_dim",
- r"""
- dense_dim() -> int
- Return the number of dense dimensions in a :ref:`sparse tensor <sparse-docs>` :attr:`self`.
- .. note::
- Returns ``len(self.shape)`` if :attr:`self` is not a sparse tensor.
- See also :meth:`Tensor.sparse_dim` and :ref:`hybrid tensors <sparse-hybrid-coo-docs>`.
- """,
- )
- add_docstr_all(
- "diag",
- r"""
- diag(diagonal=0) -> Tensor
- See :func:`torch.diag`
- """,
- )
- add_docstr_all(
- "diag_embed",
- r"""
- diag_embed(offset=0, dim1=-2, dim2=-1) -> Tensor
- See :func:`torch.diag_embed`
- """,
- )
- add_docstr_all(
- "diagflat",
- r"""
- diagflat(offset=0) -> Tensor
- See :func:`torch.diagflat`
- """,
- )
- add_docstr_all(
- "diagonal",
- r"""
- diagonal(offset=0, dim1=0, dim2=1) -> Tensor
- See :func:`torch.diagonal`
- """,
- )
- add_docstr_all(
- "diagonal_scatter",
- r"""
- diagonal_scatter(src, offset=0, dim1=0, dim2=1) -> Tensor
- See :func:`torch.diagonal_scatter`
- """,
- )
- add_docstr_all(
- "as_strided_scatter",
- r"""
- as_strided_scatter(src, size, stride, storage_offset=None) -> Tensor
- See :func:`torch.as_strided_scatter`
- """,
- )
- add_docstr_all(
- "fill_diagonal_",
- r"""
- fill_diagonal_(fill_value, wrap=False) -> Tensor
- Fill the main diagonal of a tensor that has at least 2-dimensions.
- When dims>2, all dimensions of input must be of equal length.
- This function modifies the input tensor in-place, and returns the input tensor.
- Arguments:
- fill_value (Scalar): the fill value
- wrap (bool, optional): the diagonal 'wrapped' after N columns for tall matrices. Default: ``False``
- Example::
- >>> a = torch.zeros(3, 3)
- >>> a.fill_diagonal_(5)
- tensor([[5., 0., 0.],
- [0., 5., 0.],
- [0., 0., 5.]])
- >>> b = torch.zeros(7, 3)
- >>> b.fill_diagonal_(5)
- tensor([[5., 0., 0.],
- [0., 5., 0.],
- [0., 0., 5.],
- [0., 0., 0.],
- [0., 0., 0.],
- [0., 0., 0.],
- [0., 0., 0.]])
- >>> c = torch.zeros(7, 3)
- >>> c.fill_diagonal_(5, wrap=True)
- tensor([[5., 0., 0.],
- [0., 5., 0.],
- [0., 0., 5.],
- [0., 0., 0.],
- [5., 0., 0.],
- [0., 5., 0.],
- [0., 0., 5.]])
- """,
- )
- add_docstr_all(
- "floor_divide",
- r"""
- floor_divide(value) -> Tensor
- See :func:`torch.floor_divide`
- """,
- )
- add_docstr_all(
- "floor_divide_",
- r"""
- floor_divide_(value) -> Tensor
- In-place version of :meth:`~Tensor.floor_divide`
- """,
- )
- add_docstr_all(
- "diff",
- r"""
- diff(n=1, dim=-1, prepend=None, append=None) -> Tensor
- See :func:`torch.diff`
- """,
- )
- add_docstr_all(
- "digamma",
- r"""
- digamma() -> Tensor
- See :func:`torch.digamma`
- """,
- )
- add_docstr_all(
- "digamma_",
- r"""
- digamma_() -> Tensor
- In-place version of :meth:`~Tensor.digamma`
- """,
- )
- add_docstr_all(
- "dim",
- r"""
- dim() -> int
- Returns the number of dimensions of :attr:`self` tensor.
- """,
- )
- add_docstr_all(
- "dist",
- r"""
- dist(other, p=2) -> Tensor
- See :func:`torch.dist`
- """,
- )
- add_docstr_all(
- "div",
- r"""
- div(value, *, rounding_mode=None) -> Tensor
- See :func:`torch.div`
- """,
- )
- add_docstr_all(
- "div_",
- r"""
- div_(value, *, rounding_mode=None) -> Tensor
- In-place version of :meth:`~Tensor.div`
- """,
- )
- add_docstr_all(
- "divide",
- r"""
- divide(value, *, rounding_mode=None) -> Tensor
- See :func:`torch.divide`
- """,
- )
- add_docstr_all(
- "divide_",
- r"""
- divide_(value, *, rounding_mode=None) -> Tensor
- In-place version of :meth:`~Tensor.divide`
- """,
- )
- add_docstr_all(
- "dot",
- r"""
- dot(other) -> Tensor
- See :func:`torch.dot`
- """,
- )
- add_docstr_all(
- "element_size",
- r"""
- element_size() -> int
- Returns the size in bytes of an individual element.
- Example::
- >>> torch.tensor([]).element_size()
- 4
- >>> torch.tensor([], dtype=torch.uint8).element_size()
- 1
- """,
- )
- add_docstr_all(
- "eq",
- r"""
- eq(other) -> Tensor
- See :func:`torch.eq`
- """,
- )
- add_docstr_all(
- "eq_",
- r"""
- eq_(other) -> Tensor
- In-place version of :meth:`~Tensor.eq`
- """,
- )
- add_docstr_all(
- "equal",
- r"""
- equal(other) -> bool
- See :func:`torch.equal`
- """,
- )
- add_docstr_all(
- "erf",
- r"""
- erf() -> Tensor
- See :func:`torch.erf`
- """,
- )
- add_docstr_all(
- "erf_",
- r"""
- erf_() -> Tensor
- In-place version of :meth:`~Tensor.erf`
- """,
- )
- add_docstr_all(
- "erfc",
- r"""
- erfc() -> Tensor
- See :func:`torch.erfc`
- """,
- )
- add_docstr_all(
- "erfc_",
- r"""
- erfc_() -> Tensor
- In-place version of :meth:`~Tensor.erfc`
- """,
- )
- add_docstr_all(
- "erfinv",
- r"""
- erfinv() -> Tensor
- See :func:`torch.erfinv`
- """,
- )
- add_docstr_all(
- "erfinv_",
- r"""
- erfinv_() -> Tensor
- In-place version of :meth:`~Tensor.erfinv`
- """,
- )
- add_docstr_all(
- "exp",
- r"""
- exp() -> Tensor
- See :func:`torch.exp`
- """,
- )
- add_docstr_all(
- "exp_",
- r"""
- exp_() -> Tensor
- In-place version of :meth:`~Tensor.exp`
- """,
- )
- add_docstr_all(
- "exp2",
- r"""
- exp2() -> Tensor
- See :func:`torch.exp2`
- """,
- )
- add_docstr_all(
- "exp2_",
- r"""
- exp2_() -> Tensor
- In-place version of :meth:`~Tensor.exp2`
- """,
- )
- add_docstr_all(
- "expm1",
- r"""
- expm1() -> Tensor
- See :func:`torch.expm1`
- """,
- )
- add_docstr_all(
- "expm1_",
- r"""
- expm1_() -> Tensor
- In-place version of :meth:`~Tensor.expm1`
- """,
- )
- add_docstr_all(
- "exponential_",
- r"""
- exponential_(lambd=1, *, generator=None) -> Tensor
- Fills :attr:`self` tensor with elements drawn from the PDF (probability density function):
- .. math::
- f(x) = \lambda e^{-\lambda x}, x > 0
- .. note::
- In probability theory, exponential distribution is supported on interval [0, :math:`\inf`) (i.e., :math:`x >= 0`)
- implying that zero can be sampled from the exponential distribution.
- However, :func:`torch.Tensor.exponential_` does not sample zero,
- which means that its actual support is the interval (0, :math:`\inf`).
- Note that :func:`torch.distributions.exponential.Exponential` is supported on the interval [0, :math:`\inf`) and can sample zero.
- """,
- )
- add_docstr_all(
- "fill_",
- r"""
- fill_(value) -> Tensor
- Fills :attr:`self` tensor with the specified value.
- """,
- )
- add_docstr_all(
- "floor",
- r"""
- floor() -> Tensor
- See :func:`torch.floor`
- """,
- )
- add_docstr_all(
- "flip",
- r"""
- flip(dims) -> Tensor
- See :func:`torch.flip`
- """,
- )
- add_docstr_all(
- "fliplr",
- r"""
- fliplr() -> Tensor
- See :func:`torch.fliplr`
- """,
- )
- add_docstr_all(
- "flipud",
- r"""
- flipud() -> Tensor
- See :func:`torch.flipud`
- """,
- )
- add_docstr_all(
- "roll",
- r"""
- roll(shifts, dims) -> Tensor
- See :func:`torch.roll`
- """,
- )
- add_docstr_all(
- "floor_",
- r"""
- floor_() -> Tensor
- In-place version of :meth:`~Tensor.floor`
- """,
- )
- add_docstr_all(
- "fmod",
- r"""
- fmod(divisor) -> Tensor
- See :func:`torch.fmod`
- """,
- )
- add_docstr_all(
- "fmod_",
- r"""
- fmod_(divisor) -> Tensor
- In-place version of :meth:`~Tensor.fmod`
- """,
- )
- add_docstr_all(
- "frac",
- r"""
- frac() -> Tensor
- See :func:`torch.frac`
- """,
- )
- add_docstr_all(
- "frac_",
- r"""
- frac_() -> Tensor
- In-place version of :meth:`~Tensor.frac`
- """,
- )
- add_docstr_all(
- "frexp",
- r"""
- frexp(input) -> (Tensor mantissa, Tensor exponent)
- See :func:`torch.frexp`
- """,
- )
- add_docstr_all(
- "flatten",
- r"""
- flatten(start_dim=0, end_dim=-1) -> Tensor
- See :func:`torch.flatten`
- """,
- )
- add_docstr_all(
- "gather",
- r"""
- gather(dim, index) -> Tensor
- See :func:`torch.gather`
- """,
- )
- add_docstr_all(
- "gcd",
- r"""
- gcd(other) -> Tensor
- See :func:`torch.gcd`
- """,
- )
- add_docstr_all(
- "gcd_",
- r"""
- gcd_(other) -> Tensor
- In-place version of :meth:`~Tensor.gcd`
- """,
- )
- add_docstr_all(
- "ge",
- r"""
- ge(other) -> Tensor
- See :func:`torch.ge`.
- """,
- )
- add_docstr_all(
- "ge_",
- r"""
- ge_(other) -> Tensor
- In-place version of :meth:`~Tensor.ge`.
- """,
- )
- add_docstr_all(
- "greater_equal",
- r"""
- greater_equal(other) -> Tensor
- See :func:`torch.greater_equal`.
- """,
- )
- add_docstr_all(
- "greater_equal_",
- r"""
- greater_equal_(other) -> Tensor
- In-place version of :meth:`~Tensor.greater_equal`.
- """,
- )
- add_docstr_all(
- "geometric_",
- r"""
- geometric_(p, *, generator=None) -> Tensor
- Fills :attr:`self` tensor with elements drawn from the geometric distribution:
- .. math::
- P(X=k) = (1 - p)^{k - 1} p, k = 1, 2, ...
- .. note::
- :func:`torch.Tensor.geometric_` `k`-th trial is the first success hence draws samples in :math:`\{1, 2, \ldots\}`, whereas
- :func:`torch.distributions.geometric.Geometric` :math:`(k+1)`-th trial is the first success
- hence draws samples in :math:`\{0, 1, \ldots\}`.
- """,
- )
- add_docstr_all(
- "geqrf",
- r"""
- geqrf() -> (Tensor, Tensor)
- See :func:`torch.geqrf`
- """,
- )
- add_docstr_all(
- "ger",
- r"""
- ger(vec2) -> Tensor
- See :func:`torch.ger`
- """,
- )
- add_docstr_all(
- "inner",
- r"""
- inner(other) -> Tensor
- See :func:`torch.inner`.
- """,
- )
- add_docstr_all(
- "outer",
- r"""
- outer(vec2) -> Tensor
- See :func:`torch.outer`.
- """,
- )
- add_docstr_all(
- "hypot",
- r"""
- hypot(other) -> Tensor
- See :func:`torch.hypot`
- """,
- )
- add_docstr_all(
- "hypot_",
- r"""
- hypot_(other) -> Tensor
- In-place version of :meth:`~Tensor.hypot`
- """,
- )
- add_docstr_all(
- "i0",
- r"""
- i0() -> Tensor
- See :func:`torch.i0`
- """,
- )
- add_docstr_all(
- "i0_",
- r"""
- i0_() -> Tensor
- In-place version of :meth:`~Tensor.i0`
- """,
- )
- add_docstr_all(
- "igamma",
- r"""
- igamma(other) -> Tensor
- See :func:`torch.igamma`
- """,
- )
- add_docstr_all(
- "igamma_",
- r"""
- igamma_(other) -> Tensor
- In-place version of :meth:`~Tensor.igamma`
- """,
- )
- add_docstr_all(
- "igammac",
- r"""
- igammac(other) -> Tensor
- See :func:`torch.igammac`
- """,
- )
- add_docstr_all(
- "igammac_",
- r"""
- igammac_(other) -> Tensor
- In-place version of :meth:`~Tensor.igammac`
- """,
- )
- add_docstr_all(
- "indices",
- r"""
- indices() -> Tensor
- Return the indices tensor of a :ref:`sparse COO tensor <sparse-coo-docs>`.
- .. warning::
- Throws an error if :attr:`self` is not a sparse COO tensor.
- See also :meth:`Tensor.values`.
- .. note::
- This method can only be called on a coalesced sparse tensor. See
- :meth:`Tensor.coalesce` for details.
- """,
- )
- add_docstr_all(
- "get_device",
- r"""
- get_device() -> Device ordinal (Integer)
- For CUDA tensors, this function returns the device ordinal of the GPU on which the tensor resides.
- For CPU tensors, this function returns `-1`.
- Example::
- >>> x = torch.randn(3, 4, 5, device='cuda:0')
- >>> x.get_device()
- 0
- >>> x.cpu().get_device()
- -1
- """,
- )
- add_docstr_all(
- "values",
- r"""
- values() -> Tensor
- Return the values tensor of a :ref:`sparse COO tensor <sparse-coo-docs>`.
- .. warning::
- Throws an error if :attr:`self` is not a sparse COO tensor.
- See also :meth:`Tensor.indices`.
- .. note::
- This method can only be called on a coalesced sparse tensor. See
- :meth:`Tensor.coalesce` for details.
- """,
- )
- add_docstr_all(
- "gt",
- r"""
- gt(other) -> Tensor
- See :func:`torch.gt`.
- """,
- )
- add_docstr_all(
- "gt_",
- r"""
- gt_(other) -> Tensor
- In-place version of :meth:`~Tensor.gt`.
- """,
- )
- add_docstr_all(
- "greater",
- r"""
- greater(other) -> Tensor
- See :func:`torch.greater`.
- """,
- )
- add_docstr_all(
- "greater_",
- r"""
- greater_(other) -> Tensor
- In-place version of :meth:`~Tensor.greater`.
- """,
- )
- add_docstr_all(
- "has_names",
- r"""
- Is ``True`` if any of this tensor's dimensions are named. Otherwise, is ``False``.
- """,
- )
- add_docstr_all(
- "hardshrink",
- r"""
- hardshrink(lambd=0.5) -> Tensor
- See :func:`torch.nn.functional.hardshrink`
- """,
- )
- add_docstr_all(
- "heaviside",
- r"""
- heaviside(values) -> Tensor
- See :func:`torch.heaviside`
- """,
- )
- add_docstr_all(
- "heaviside_",
- r"""
- heaviside_(values) -> Tensor
- In-place version of :meth:`~Tensor.heaviside`
- """,
- )
- add_docstr_all(
- "histc",
- r"""
- histc(bins=100, min=0, max=0) -> Tensor
- See :func:`torch.histc`
- """,
- )
- add_docstr_all(
- "histogram",
- r"""
- histogram(input, bins, *, range=None, weight=None, density=False) -> (Tensor, Tensor)
- See :func:`torch.histogram`
- """,
- )
- add_docstr_all(
- "index_add_",
- r"""
- index_add_(dim, index, source, *, alpha=1) -> Tensor
- Accumulate the elements of :attr:`alpha` times ``source`` into the :attr:`self`
- tensor by adding to the indices in the order given in :attr:`index`. For example,
- if ``dim == 0``, ``index[i] == j``, and ``alpha=-1``, then the ``i``\ th row of
- ``source`` is subtracted from the ``j``\ th row of :attr:`self`.
- The :attr:`dim`\ th dimension of ``source`` must have the same size as the
- length of :attr:`index` (which must be a vector), and all other dimensions must
- match :attr:`self`, or an error will be raised.
- For a 3-D tensor the output is given as::
- self[index[i], :, :] += alpha * src[i, :, :] # if dim == 0
- self[:, index[i], :] += alpha * src[:, i, :] # if dim == 1
- self[:, :, index[i]] += alpha * src[:, :, i] # if dim == 2
- Note:
- {forward_reproducibility_note}
- Args:
- dim (int): dimension along which to index
- index (Tensor): indices of ``source`` to select from,
- should have dtype either `torch.int64` or `torch.int32`
- source (Tensor): the tensor containing values to add
- Keyword args:
- alpha (Number): the scalar multiplier for ``source``
- Example::
- >>> x = torch.ones(5, 3)
- >>> t = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]], dtype=torch.float)
- >>> index = torch.tensor([0, 4, 2])
- >>> x.index_add_(0, index, t)
- tensor([[ 2., 3., 4.],
- [ 1., 1., 1.],
- [ 8., 9., 10.],
- [ 1., 1., 1.],
- [ 5., 6., 7.]])
- >>> x.index_add_(0, index, t, alpha=-1)
- tensor([[ 1., 1., 1.],
- [ 1., 1., 1.],
- [ 1., 1., 1.],
- [ 1., 1., 1.],
- [ 1., 1., 1.]])
- """.format(**reproducibility_notes),
- )
- add_docstr_all(
- "index_copy_",
- r"""
- index_copy_(dim, index, tensor) -> Tensor
- Copies the elements of :attr:`tensor` into the :attr:`self` tensor by selecting
- the indices in the order given in :attr:`index`. For example, if ``dim == 0``
- and ``index[i] == j``, then the ``i``\ th row of :attr:`tensor` is copied to the
- ``j``\ th row of :attr:`self`.
- The :attr:`dim`\ th dimension of :attr:`tensor` must have the same size as the
- length of :attr:`index` (which must be a vector), and all other dimensions must
- match :attr:`self`, or an error will be raised.
- .. note::
- If :attr:`index` contains duplicate entries, multiple elements from
- :attr:`tensor` will be copied to the same index of :attr:`self`. The result
- is nondeterministic since it depends on which copy occurs last.
- Args:
- dim (int): dimension along which to index
- index (LongTensor): indices of :attr:`tensor` to select from
- tensor (Tensor): the tensor containing values to copy
- Example::
- >>> x = torch.zeros(5, 3)
- >>> t = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]], dtype=torch.float)
- >>> index = torch.tensor([0, 4, 2])
- >>> x.index_copy_(0, index, t)
- tensor([[ 1., 2., 3.],
- [ 0., 0., 0.],
- [ 7., 8., 9.],
- [ 0., 0., 0.],
- [ 4., 5., 6.]])
- """,
- )
- add_docstr_all(
- "index_fill_",
- r"""
- index_fill_(dim, index, value) -> Tensor
- Fills the elements of the :attr:`self` tensor with value :attr:`value` by
- selecting the indices in the order given in :attr:`index`.
- Args:
- dim (int): dimension along which to index
- index (LongTensor): indices of :attr:`self` tensor to fill in
- value (float): the value to fill with
- Example::
- >>> x = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]], dtype=torch.float)
- >>> index = torch.tensor([0, 2])
- >>> x.index_fill_(1, index, -1)
- tensor([[-1., 2., -1.],
- [-1., 5., -1.],
- [-1., 8., -1.]])
- """,
- )
- add_docstr_all(
- "index_put_",
- r"""
- index_put_(indices, values, accumulate=False) -> Tensor
- Puts values from the tensor :attr:`values` into the tensor :attr:`self` using
- the indices specified in :attr:`indices` (which is a tuple of Tensors). The
- expression ``tensor.index_put_(indices, values)`` is equivalent to
- ``tensor[indices] = values``. Returns :attr:`self`.
- If :attr:`accumulate` is ``True``, the elements in :attr:`values` are added to
- :attr:`self`. If accumulate is ``False``, the behavior is undefined if indices
- contain duplicate elements.
- Args:
- indices (tuple of LongTensor): tensors used to index into `self`.
- values (Tensor): tensor of same dtype as `self`.
- accumulate (bool): whether to accumulate into self
- """,
- )
- add_docstr_all(
- "index_put",
- r"""
- index_put(indices, values, accumulate=False) -> Tensor
- Out-place version of :meth:`~Tensor.index_put_`.
- """,
- )
- add_docstr_all(
- "index_reduce_",
- r"""
- index_reduce_(dim, index, source, reduce, *, include_self=True) -> Tensor
- Accumulate the elements of ``source`` into the :attr:`self`
- tensor by accumulating to the indices in the order given in :attr:`index`
- using the reduction given by the ``reduce`` argument. For example, if ``dim == 0``,
- ``index[i] == j``, ``reduce == prod`` and ``include_self == True`` then the ``i``\ th
- row of ``source`` is multiplied by the ``j``\ th row of :attr:`self`. If
- :obj:`include_self="True"`, the values in the :attr:`self` tensor are included
- in the reduction, otherwise, rows in the :attr:`self` tensor that are accumulated
- to are treated as if they were filled with the reduction identities.
- The :attr:`dim`\ th dimension of ``source`` must have the same size as the
- length of :attr:`index` (which must be a vector), and all other dimensions must
- match :attr:`self`, or an error will be raised.
- For a 3-D tensor with :obj:`reduce="prod"` and :obj:`include_self=True` the
- output is given as::
- self[index[i], :, :] *= src[i, :, :] # if dim == 0
- self[:, index[i], :] *= src[:, i, :] # if dim == 1
- self[:, :, index[i]] *= src[:, :, i] # if dim == 2
- Note:
- {forward_reproducibility_note}
- .. note::
- This function only supports floating point tensors.
- .. warning::
- This function is in beta and may change in the near future.
- Args:
- dim (int): dimension along which to index
- index (Tensor): indices of ``source`` to select from,
- should have dtype either `torch.int64` or `torch.int32`
- source (FloatTensor): the tensor containing values to accumulate
- reduce (str): the reduction operation to apply
- (:obj:`"prod"`, :obj:`"mean"`, :obj:`"amax"`, :obj:`"amin"`)
- Keyword args:
- include_self (bool): whether the elements from the ``self`` tensor are
- included in the reduction
- Example::
- >>> x = torch.empty(5, 3).fill_(2)
- >>> t = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]], dtype=torch.float)
- >>> index = torch.tensor([0, 4, 2, 0])
- >>> x.index_reduce_(0, index, t, 'prod')
- tensor([[20., 44., 72.],
- [ 2., 2., 2.],
- [14., 16., 18.],
- [ 2., 2., 2.],
- [ 8., 10., 12.]])
- >>> x = torch.empty(5, 3).fill_(2)
- >>> x.index_reduce_(0, index, t, 'prod', include_self=False)
- tensor([[10., 22., 36.],
- [ 2., 2., 2.],
- [ 7., 8., 9.],
- [ 2., 2., 2.],
- [ 4., 5., 6.]])
- """.format(**reproducibility_notes),
- )
- add_docstr_all(
- "index_select",
- r"""
- index_select(dim, index) -> Tensor
- See :func:`torch.index_select`
- """,
- )
- add_docstr_all(
- "sparse_mask",
- r"""
- sparse_mask(mask) -> Tensor
- Returns a new :ref:`sparse tensor <sparse-docs>` with values from a
- strided tensor :attr:`self` filtered by the indices of the sparse
- tensor :attr:`mask`. The values of :attr:`mask` sparse tensor are
- ignored. :attr:`self` and :attr:`mask` tensors must have the same
- shape.
- .. note::
- The returned sparse tensor might contain duplicate values if :attr:`mask`
- is not coalesced. It is therefore advisable to pass ``mask.coalesce()``
- if such behavior is not desired.
- .. note::
- The returned sparse tensor has the same indices as the sparse tensor
- :attr:`mask`, even when the corresponding values in :attr:`self` are
- zeros.
- Args:
- mask (Tensor): a sparse tensor whose indices are used as a filter
- Example::
- >>> nse = 5
- >>> dims = (5, 5, 2, 2)
- >>> I = torch.cat([torch.randint(0, dims[0], size=(nse,)),
- ... torch.randint(0, dims[1], size=(nse,))], 0).reshape(2, nse)
- >>> V = torch.randn(nse, dims[2], dims[3])
- >>> S = torch.sparse_coo_tensor(I, V, dims).coalesce()
- >>> D = torch.randn(dims)
- >>> D.sparse_mask(S)
- tensor(indices=tensor([[0, 0, 0, 2],
- [0, 1, 4, 3]]),
- values=tensor([[[ 1.6550, 0.2397],
- [-0.1611, -0.0779]],
- [[ 0.2326, -1.0558],
- [ 1.4711, 1.9678]],
- [[-0.5138, -0.0411],
- [ 1.9417, 0.5158]],
- [[ 0.0793, 0.0036],
- [-0.2569, -0.1055]]]),
- size=(5, 5, 2, 2), nnz=4, layout=torch.sparse_coo)
- """,
- )
- add_docstr_all(
- "inverse",
- r"""
- inverse() -> Tensor
- See :func:`torch.inverse`
- """,
- )
- add_docstr_all(
- "isnan",
- r"""
- isnan() -> Tensor
- See :func:`torch.isnan`
- """,
- )
- add_docstr_all(
- "isinf",
- r"""
- isinf() -> Tensor
- See :func:`torch.isinf`
- """,
- )
- add_docstr_all(
- "isposinf",
- r"""
- isposinf() -> Tensor
- See :func:`torch.isposinf`
- """,
- )
- add_docstr_all(
- "isneginf",
- r"""
- isneginf() -> Tensor
- See :func:`torch.isneginf`
- """,
- )
- add_docstr_all(
- "isfinite",
- r"""
- isfinite() -> Tensor
- See :func:`torch.isfinite`
- """,
- )
- add_docstr_all(
- "isclose",
- r"""
- isclose(other, rtol=1e-05, atol=1e-08, equal_nan=False) -> Tensor
- See :func:`torch.isclose`
- """,
- )
- add_docstr_all(
- "isreal",
- r"""
- isreal() -> Tensor
- See :func:`torch.isreal`
- """,
- )
- add_docstr_all(
- "is_coalesced",
- r"""
- is_coalesced() -> bool
- Returns ``True`` if :attr:`self` is a :ref:`sparse COO tensor
- <sparse-coo-docs>` that is coalesced, ``False`` otherwise.
- .. warning::
- Throws an error if :attr:`self` is not a sparse COO tensor.
- See :meth:`coalesce` and :ref:`uncoalesced tensors <sparse-uncoalesced-coo-docs>`.
- """,
- )
- add_docstr_all(
- "is_contiguous",
- r"""
- is_contiguous(memory_format=torch.contiguous_format) -> bool
- Returns True if :attr:`self` tensor is contiguous in memory in the order specified
- by memory format.
- Args:
- memory_format (:class:`torch.memory_format`, optional): Specifies memory allocation
- order. Default: ``torch.contiguous_format``.
- """,
- )
- add_docstr_all(
- "is_pinned",
- r"""
- Returns true if this tensor resides in pinned memory.
- By default, the device pinned memory on will be the current :ref:`accelerator<accelerators>`.
- """,
- )
- add_docstr_all(
- "is_floating_point",
- r"""
- is_floating_point() -> bool
- Returns True if the data type of :attr:`self` is a floating point data type.
- """,
- )
- add_docstr_all(
- "is_complex",
- r"""
- is_complex() -> bool
- Returns True if the data type of :attr:`self` is a complex data type.
- """,
- )
- add_docstr_all(
- "is_inference",
- r"""
- is_inference() -> bool
- See :func:`torch.is_inference`
- """,
- )
- add_docstr_all(
- "is_conj",
- r"""
- is_conj() -> bool
- Returns True if the conjugate bit of :attr:`self` is set to true.
- """,
- )
- add_docstr_all(
- "is_neg",
- r"""
- is_neg() -> bool
- Returns True if the negative bit of :attr:`self` is set to true.
- """,
- )
- add_docstr_all(
- "is_signed",
- r"""
- is_signed() -> bool
- Returns True if the data type of :attr:`self` is a signed data type.
- """,
- )
- add_docstr_all(
- "is_set_to",
- r"""
- is_set_to(tensor) -> bool
- Returns True if both tensors are pointing to the exact same memory (same
- storage, offset, size and stride).
- """,
- )
- add_docstr_all(
- "item",
- r"""
- item() -> number
- Returns the value of this tensor as a standard Python number. This only works
- for tensors with one element. For other cases, see :meth:`~Tensor.tolist`.
- This operation is not differentiable.
- Example::
- >>> x = torch.tensor([1.0])
- >>> x.item()
- 1.0
- """,
- )
- add_docstr_all(
- "kron",
- r"""
- kron(other) -> Tensor
- See :func:`torch.kron`
- """,
- )
- add_docstr_all(
- "kthvalue",
- r"""
- kthvalue(k, dim=None, keepdim=False) -> (Tensor, LongTensor)
- See :func:`torch.kthvalue`
- """,
- )
- add_docstr_all(
- "ldexp",
- r"""
- ldexp(other) -> Tensor
- See :func:`torch.ldexp`
- """,
- )
- add_docstr_all(
- "ldexp_",
- r"""
- ldexp_(other) -> Tensor
- In-place version of :meth:`~Tensor.ldexp`
- """,
- )
- add_docstr_all(
- "lcm",
- r"""
- lcm(other) -> Tensor
- See :func:`torch.lcm`
- """,
- )
- add_docstr_all(
- "lcm_",
- r"""
- lcm_(other) -> Tensor
- In-place version of :meth:`~Tensor.lcm`
- """,
- )
- add_docstr_all(
- "le",
- r"""
- le(other) -> Tensor
- See :func:`torch.le`.
- """,
- )
- add_docstr_all(
- "le_",
- r"""
- le_(other) -> Tensor
- In-place version of :meth:`~Tensor.le`.
- """,
- )
- add_docstr_all(
- "less_equal",
- r"""
- less_equal(other) -> Tensor
- See :func:`torch.less_equal`.
- """,
- )
- add_docstr_all(
- "less_equal_",
- r"""
- less_equal_(other) -> Tensor
- In-place version of :meth:`~Tensor.less_equal`.
- """,
- )
- add_docstr_all(
- "lerp",
- r"""
- lerp(end, weight) -> Tensor
- See :func:`torch.lerp`
- """,
- )
- add_docstr_all(
- "lerp_",
- r"""
- lerp_(end, weight) -> Tensor
- In-place version of :meth:`~Tensor.lerp`
- """,
- )
- add_docstr_all(
- "lgamma",
- r"""
- lgamma() -> Tensor
- See :func:`torch.lgamma`
- """,
- )
- add_docstr_all(
- "lgamma_",
- r"""
- lgamma_() -> Tensor
- In-place version of :meth:`~Tensor.lgamma`
- """,
- )
- add_docstr_all(
- "log",
- r"""
- log() -> Tensor
- See :func:`torch.log`
- """,
- )
- add_docstr_all(
- "log_",
- r"""
- log_() -> Tensor
- In-place version of :meth:`~Tensor.log`
- """,
- )
- add_docstr_all(
- "log10",
- r"""
- log10() -> Tensor
- See :func:`torch.log10`
- """,
- )
- add_docstr_all(
- "log10_",
- r"""
- log10_() -> Tensor
- In-place version of :meth:`~Tensor.log10`
- """,
- )
- add_docstr_all(
- "log1p",
- r"""
- log1p() -> Tensor
- See :func:`torch.log1p`
- """,
- )
- add_docstr_all(
- "log1p_",
- r"""
- log1p_() -> Tensor
- In-place version of :meth:`~Tensor.log1p`
- """,
- )
- add_docstr_all(
- "log2",
- r"""
- log2() -> Tensor
- See :func:`torch.log2`
- """,
- )
- add_docstr_all(
- "log2_",
- r"""
- log2_() -> Tensor
- In-place version of :meth:`~Tensor.log2`
- """,
- )
- add_docstr_all(
- "logaddexp",
- r"""
- logaddexp(other) -> Tensor
- See :func:`torch.logaddexp`
- """,
- )
- add_docstr_all(
- "logaddexp2",
- r"""
- logaddexp2(other) -> Tensor
- See :func:`torch.logaddexp2`
- """,
- )
- add_docstr_all(
- "log_normal_",
- r"""
- log_normal_(mean=1, std=2, *, generator=None)
- Fills :attr:`self` tensor with numbers samples from the log-normal distribution
- parameterized by the given mean :math:`\mu` and standard deviation
- :math:`\sigma`. Note that :attr:`mean` and :attr:`std` are the mean and
- standard deviation of the underlying normal distribution, and not of the
- returned distribution:
- .. math::
- f(x) = \dfrac{1}{x \sigma \sqrt{2\pi}}\ e^{-\frac{(\ln x - \mu)^2}{2\sigma^2}}
- """,
- )
- add_docstr_all(
- "logsumexp",
- r"""
- logsumexp(dim, keepdim=False) -> Tensor
- See :func:`torch.logsumexp`
- """,
- )
- add_docstr_all(
- "lt",
- r"""
- lt(other) -> Tensor
- See :func:`torch.lt`.
- """,
- )
- add_docstr_all(
- "lt_",
- r"""
- lt_(other) -> Tensor
- In-place version of :meth:`~Tensor.lt`.
- """,
- )
- add_docstr_all(
- "less",
- r"""
- lt(other) -> Tensor
- See :func:`torch.less`.
- """,
- )
- add_docstr_all(
- "less_",
- r"""
- less_(other) -> Tensor
- In-place version of :meth:`~Tensor.less`.
- """,
- )
- add_docstr_all(
- "lu_solve",
- r"""
- lu_solve(LU_data, LU_pivots) -> Tensor
- See :func:`torch.lu_solve`
- """,
- )
- add_docstr_all(
- "map_",
- r"""
- map_(tensor, callable)
- Applies :attr:`callable` for each element in :attr:`self` tensor and the given
- :attr:`tensor` and stores the results in :attr:`self` tensor. :attr:`self` tensor and
- the given :attr:`tensor` must be :ref:`broadcastable <broadcasting-semantics>`.
- The :attr:`callable` should have the signature::
- def callable(a, b) -> number
- """,
- )
- add_docstr_all(
- "masked_scatter_",
- r"""
- masked_scatter_(mask, source)
- Copies elements from :attr:`source` into :attr:`self` tensor at positions where
- the :attr:`mask` is True. Elements from :attr:`source` are copied into :attr:`self`
- starting at position 0 of :attr:`source` and continuing in order one-by-one for each
- occurrence of :attr:`mask` being True.
- The shape of :attr:`mask` must be :ref:`broadcastable <broadcasting-semantics>`
- with the shape of the underlying tensor. The :attr:`source` should have at least
- as many elements as the number of ones in :attr:`mask`.
- Args:
- mask (BoolTensor): the boolean mask
- source (Tensor): the tensor to copy from
- .. note::
- The :attr:`mask` operates on the :attr:`self` tensor, not on the given
- :attr:`source` tensor.
- Example:
- >>> self = torch.tensor([[0, 0, 0, 0, 0], [0, 0, 0, 0, 0]])
- >>> mask = torch.tensor(
- ... [[0, 0, 0, 1, 1], [1, 1, 0, 1, 1]],
- ... dtype=torch.bool,
- ... )
- >>> source = torch.tensor([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]])
- >>> self.masked_scatter_(mask, source)
- tensor([[0, 0, 0, 0, 1],
- [2, 3, 0, 4, 5]])
- """,
- )
- add_docstr_all(
- "masked_fill_",
- r"""
- masked_fill_(mask, value)
- Fills elements of :attr:`self` tensor with :attr:`value` where :attr:`mask` is
- True. The shape of :attr:`mask` must be
- :ref:`broadcastable <broadcasting-semantics>` with the shape of the underlying
- tensor.
- Args:
- mask (BoolTensor): the boolean mask
- value (float): the value to fill in with
- """,
- )
- add_docstr_all(
- "masked_select",
- r"""
- masked_select(mask) -> Tensor
- See :func:`torch.masked_select`
- """,
- )
- add_docstr_all(
- "matrix_power",
- r"""
- matrix_power(n) -> Tensor
- .. note:: :meth:`~Tensor.matrix_power` is deprecated, use :func:`torch.linalg.matrix_power` instead.
- Alias for :func:`torch.linalg.matrix_power`
- """,
- )
- add_docstr_all(
- "matrix_exp",
- r"""
- matrix_exp() -> Tensor
- See :func:`torch.matrix_exp`
- """,
- )
- add_docstr_all(
- "max",
- r"""
- max(dim=None, keepdim=False) -> Tensor or (Tensor, Tensor)
- See :func:`torch.max`
- """,
- )
- add_docstr_all(
- "amax",
- r"""
- amax(dim=None, keepdim=False) -> Tensor
- See :func:`torch.amax`
- """,
- )
- add_docstr_all(
- "maximum",
- r"""
- maximum(other) -> Tensor
- See :func:`torch.maximum`
- """,
- )
- add_docstr_all(
- "fmax",
- r"""
- fmax(other) -> Tensor
- See :func:`torch.fmax`
- """,
- )
- add_docstr_all(
- "argmax",
- r"""
- argmax(dim=None, keepdim=False) -> LongTensor
- See :func:`torch.argmax`
- """,
- )
- add_docstr_all(
- "argwhere",
- r"""
- argwhere() -> Tensor
- See :func:`torch.argwhere`
- """,
- )
- add_docstr_all(
- "mean",
- r"""
- mean(dim=None, keepdim=False, *, dtype=None) -> Tensor
- See :func:`torch.mean`
- """,
- )
- add_docstr_all(
- "nanmean",
- r"""
- nanmean(dim=None, keepdim=False, *, dtype=None) -> Tensor
- See :func:`torch.nanmean`
- """,
- )
- add_docstr_all(
- "median",
- r"""
- median(dim=None, keepdim=False) -> (Tensor, LongTensor)
- See :func:`torch.median`
- """,
- )
- add_docstr_all(
- "nanmedian",
- r"""
- nanmedian(dim=None, keepdim=False) -> (Tensor, LongTensor)
- See :func:`torch.nanmedian`
- """,
- )
- add_docstr_all(
- "min",
- r"""
- min(dim=None, keepdim=False) -> Tensor or (Tensor, Tensor)
- See :func:`torch.min`
- """,
- )
- add_docstr_all(
- "amin",
- r"""
- amin(dim=None, keepdim=False) -> Tensor
- See :func:`torch.amin`
- """,
- )
- add_docstr_all(
- "minimum",
- r"""
- minimum(other) -> Tensor
- See :func:`torch.minimum`
- """,
- )
- add_docstr_all(
- "aminmax",
- r"""
- aminmax(*, dim=None, keepdim=False) -> (Tensor min, Tensor max)
- See :func:`torch.aminmax`
- """,
- )
- add_docstr_all(
- "fmin",
- r"""
- fmin(other) -> Tensor
- See :func:`torch.fmin`
- """,
- )
- add_docstr_all(
- "argmin",
- r"""
- argmin(dim=None, keepdim=False) -> LongTensor
- See :func:`torch.argmin`
- """,
- )
- add_docstr_all(
- "mm",
- r"""
- mm(mat2) -> Tensor
- See :func:`torch.mm`
- """,
- )
- add_docstr_all(
- "mode",
- r"""
- mode(dim=None, keepdim=False) -> (Tensor, LongTensor)
- See :func:`torch.mode`
- """,
- )
- add_docstr_all(
- "movedim",
- r"""
- movedim(source, destination) -> Tensor
- See :func:`torch.movedim`
- """,
- )
- add_docstr_all(
- "moveaxis",
- r"""
- moveaxis(source, destination) -> Tensor
- See :func:`torch.moveaxis`
- """,
- )
- add_docstr_all(
- "mul",
- r"""
- mul(value) -> Tensor
- See :func:`torch.mul`.
- """,
- )
- add_docstr_all(
- "mul_",
- r"""
- mul_(value) -> Tensor
- In-place version of :meth:`~Tensor.mul`.
- """,
- )
- add_docstr_all(
- "multiply",
- r"""
- multiply(value) -> Tensor
- See :func:`torch.multiply`.
- """,
- )
- add_docstr_all(
- "multiply_",
- r"""
- multiply_(value) -> Tensor
- In-place version of :meth:`~Tensor.multiply`.
- """,
- )
- add_docstr_all(
- "multinomial",
- r"""
- multinomial(num_samples, replacement=False, *, generator=None) -> Tensor
- See :func:`torch.multinomial`
- """,
- )
- add_docstr_all(
- "mv",
- r"""
- mv(vec) -> Tensor
- See :func:`torch.mv`
- """,
- )
- add_docstr_all(
- "mvlgamma",
- r"""
- mvlgamma(p) -> Tensor
- See :func:`torch.mvlgamma`
- """,
- )
- add_docstr_all(
- "mvlgamma_",
- r"""
- mvlgamma_(p) -> Tensor
- In-place version of :meth:`~Tensor.mvlgamma`
- """,
- )
- add_docstr_all(
- "narrow",
- r"""
- narrow(dimension, start, length) -> Tensor
- See :func:`torch.narrow`.
- """,
- )
- add_docstr_all(
- "narrow_copy",
- r"""
- narrow_copy(dimension, start, length) -> Tensor
- See :func:`torch.narrow_copy`.
- """,
- )
- add_docstr_all(
- "ndimension",
- r"""
- ndimension() -> int
- Alias for :meth:`~Tensor.dim()`
- """,
- )
- add_docstr_all(
- "nan_to_num",
- r"""
- nan_to_num(nan=0.0, posinf=None, neginf=None) -> Tensor
- See :func:`torch.nan_to_num`.
- """,
- )
- add_docstr_all(
- "nan_to_num_",
- r"""
- nan_to_num_(nan=0.0, posinf=None, neginf=None) -> Tensor
- In-place version of :meth:`~Tensor.nan_to_num`.
- """,
- )
- add_docstr_all(
- "ne",
- r"""
- ne(other) -> Tensor
- See :func:`torch.ne`.
- """,
- )
- add_docstr_all(
- "ne_",
- r"""
- ne_(other) -> Tensor
- In-place version of :meth:`~Tensor.ne`.
- """,
- )
- add_docstr_all(
- "not_equal",
- r"""
- not_equal(other) -> Tensor
- See :func:`torch.not_equal`.
- """,
- )
- add_docstr_all(
- "not_equal_",
- r"""
- not_equal_(other) -> Tensor
- In-place version of :meth:`~Tensor.not_equal`.
- """,
- )
- add_docstr_all(
- "neg",
- r"""
- neg() -> Tensor
- See :func:`torch.neg`
- """,
- )
- add_docstr_all(
- "negative",
- r"""
- negative() -> Tensor
- See :func:`torch.negative`
- """,
- )
- add_docstr_all(
- "neg_",
- r"""
- neg_() -> Tensor
- In-place version of :meth:`~Tensor.neg`
- """,
- )
- add_docstr_all(
- "negative_",
- r"""
- negative_() -> Tensor
- In-place version of :meth:`~Tensor.negative`
- """,
- )
- add_docstr_all(
- "nelement",
- r"""
- nelement() -> int
- Alias for :meth:`~Tensor.numel`
- """,
- )
- add_docstr_all(
- "nextafter",
- r"""
- nextafter(other) -> Tensor
- See :func:`torch.nextafter`
- """,
- )
- add_docstr_all(
- "nextafter_",
- r"""
- nextafter_(other) -> Tensor
- In-place version of :meth:`~Tensor.nextafter`
- """,
- )
- add_docstr_all(
- "nonzero",
- r"""
- nonzero() -> LongTensor
- See :func:`torch.nonzero`
- """,
- )
- add_docstr_all(
- "nonzero_static",
- r"""
- nonzero_static(input, *, size, fill_value=-1) -> Tensor
- Returns a 2-D tensor where each row is the index for a non-zero value.
- The returned Tensor has the same `torch.dtype` as `torch.nonzero()`.
- Args:
- input (Tensor): the input tensor to count non-zero elements.
- Keyword args:
- size (int): the size of non-zero elements expected to be included in the out
- tensor. Pad the out tensor with `fill_value` if the `size` is larger
- than total number of non-zero elements, truncate out tensor if `size`
- is smaller. The size must be a non-negative integer.
- fill_value (int, optional): the value to fill the output tensor with when `size` is larger
- than the total number of non-zero elements. Default is `-1` to represent
- invalid index.
- Example:
- # Example 1: Padding
- >>> input_tensor = torch.tensor([[1, 0], [3, 2]])
- >>> static_size = 4
- >>> t = torch.nonzero_static(input_tensor, size=static_size)
- tensor([[ 0, 0],
- [ 1, 0],
- [ 1, 1],
- [ -1, -1]], dtype=torch.int64)
- # Example 2: Truncating
- >>> input_tensor = torch.tensor([[1, 0], [3, 2]])
- >>> static_size = 2
- >>> t = torch.nonzero_static(input_tensor, size=static_size)
- tensor([[ 0, 0],
- [ 1, 0]], dtype=torch.int64)
- # Example 3: 0 size
- >>> input_tensor = torch.tensor([10])
- >>> static_size = 0
- >>> t = torch.nonzero_static(input_tensor, size=static_size)
- tensor([], size=(0, 1), dtype=torch.int64)
- # Example 4: 0 rank input
- >>> input_tensor = torch.tensor(10)
- >>> static_size = 2
- >>> t = torch.nonzero_static(input_tensor, size=static_size)
- tensor([], size=(2, 0), dtype=torch.int64)
- """,
- )
- add_docstr_all(
- "norm",
- r"""
- norm(p=2, dim=None, keepdim=False) -> Tensor
- See :func:`torch.norm`
- """,
- )
- add_docstr_all(
- "normal_",
- r"""
- normal_(mean=0, std=1, *, generator=None) -> Tensor
- Fills :attr:`self` tensor with elements samples from the normal distribution
- parameterized by :attr:`mean` and :attr:`std`.
- """,
- )
- add_docstr_all(
- "numel",
- r"""
- numel() -> int
- See :func:`torch.numel`
- """,
- )
- add_docstr_all(
- "numpy",
- r"""
- numpy(*, force=False) -> numpy.ndarray
- Returns the tensor as a NumPy :class:`ndarray`.
- If :attr:`force` is ``False`` (the default), the conversion
- is performed only if the tensor is on the CPU, does not require grad,
- does not have its conjugate bit set, and is a dtype and layout that
- NumPy supports. The returned ndarray and the tensor will share their
- storage, so changes to the tensor will be reflected in the ndarray
- and vice versa.
- If :attr:`force` is ``True`` this is equivalent to
- calling ``t.detach().cpu().resolve_conj().resolve_neg().numpy()``.
- If the tensor isn't on the CPU or the conjugate or negative bit is set,
- the tensor won't share its storage with the returned ndarray.
- Setting :attr:`force` to ``True`` can be a useful shorthand.
- Args:
- force (bool): if ``True``, the ndarray may be a copy of the tensor
- instead of always sharing memory, defaults to ``False``.
- """,
- )
- add_docstr_all(
- "orgqr",
- r"""
- orgqr(input2) -> Tensor
- See :func:`torch.orgqr`
- """,
- )
- add_docstr_all(
- "ormqr",
- r"""
- ormqr(input2, input3, left=True, transpose=False) -> Tensor
- See :func:`torch.ormqr`
- """,
- )
- add_docstr_all(
- "permute",
- r"""
- permute(*dims) -> Tensor
- Returns a view of the tensor with its dimensions permuted.
- Args:
- dims (torch.Size, int..., tuple of int or list of int): the desired ordering of dimensions.
- Example:
- >>> x = torch.randn(2, 3, 5)
- >>> x.size()
- torch.Size([2, 3, 5])
- >>> x.permute(2, 0, 1).size()
- torch.Size([5, 2, 3])
- """,
- )
- add_docstr_all(
- "polygamma",
- r"""
- polygamma(n) -> Tensor
- See :func:`torch.polygamma`
- """,
- )
- add_docstr_all(
- "polygamma_",
- r"""
- polygamma_(n) -> Tensor
- In-place version of :meth:`~Tensor.polygamma`
- """,
- )
- add_docstr_all(
- "positive",
- r"""
- positive() -> Tensor
- See :func:`torch.positive`
- """,
- )
- add_docstr_all(
- "pow",
- r"""
- pow(exponent) -> Tensor
- See :func:`torch.pow`
- """,
- )
- add_docstr_all(
- "pow_",
- r"""
- pow_(exponent) -> Tensor
- In-place version of :meth:`~Tensor.pow`
- """,
- )
- add_docstr_all(
- "float_power",
- r"""
- float_power(exponent) -> Tensor
- See :func:`torch.float_power`
- """,
- )
- add_docstr_all(
- "float_power_",
- r"""
- float_power_(exponent) -> Tensor
- In-place version of :meth:`~Tensor.float_power`
- """,
- )
- add_docstr_all(
- "prod",
- r"""
- prod(dim=None, keepdim=False, dtype=None) -> Tensor
- See :func:`torch.prod`
- """,
- )
- add_docstr_all(
- "put_",
- r"""
- put_(index, source, accumulate=False) -> Tensor
- Copies the elements from :attr:`source` into the positions specified by
- :attr:`index`. For the purpose of indexing, the :attr:`self` tensor is treated as if
- it were a 1-D tensor.
- :attr:`index` and :attr:`source` need to have the same number of elements, but not necessarily
- the same shape.
- If :attr:`accumulate` is ``True``, the elements in :attr:`source` are added to
- :attr:`self`. If accumulate is ``False``, the behavior is undefined if :attr:`index`
- contain duplicate elements.
- Args:
- index (LongTensor): the indices into self
- source (Tensor): the tensor containing values to copy from
- accumulate (bool, optional): whether to accumulate into self. Default: ``False``
- Example::
- >>> src = torch.tensor([[4, 3, 5],
- ... [6, 7, 8]])
- >>> src.put_(torch.tensor([1, 3]), torch.tensor([9, 10]))
- tensor([[ 4, 9, 5],
- [ 10, 7, 8]])
- """,
- )
- add_docstr_all(
- "put",
- r"""
- put(input, index, source, accumulate=False) -> Tensor
- Out-of-place version of :meth:`torch.Tensor.put_`.
- `input` corresponds to `self` in :meth:`torch.Tensor.put_`.
- """,
- )
- add_docstr_all(
- "qr",
- r"""
- qr(some=True) -> (Tensor, Tensor)
- See :func:`torch.qr`
- """,
- )
- add_docstr_all(
- "qscheme",
- r"""
- qscheme() -> torch.qscheme
- Returns the quantization scheme of a given QTensor.
- """,
- )
- add_docstr_all(
- "quantile",
- r"""
- quantile(q, dim=None, keepdim=False, *, interpolation='linear') -> Tensor
- See :func:`torch.quantile`
- """,
- )
- add_docstr_all(
- "nanquantile",
- r"""
- nanquantile(q, dim=None, keepdim=False, *, interpolation='linear') -> Tensor
- See :func:`torch.nanquantile`
- """,
- )
- add_docstr_all(
- "q_scale",
- r"""
- q_scale() -> float
- Given a Tensor quantized by linear(affine) quantization,
- returns the scale of the underlying quantizer().
- """,
- )
- add_docstr_all(
- "q_zero_point",
- r"""
- q_zero_point() -> int
- Given a Tensor quantized by linear(affine) quantization,
- returns the zero_point of the underlying quantizer().
- """,
- )
- add_docstr_all(
- "q_per_channel_scales",
- r"""
- q_per_channel_scales() -> Tensor
- Given a Tensor quantized by linear (affine) per-channel quantization,
- returns a Tensor of scales of the underlying quantizer. It has the number of
- elements that matches the corresponding dimensions (from q_per_channel_axis) of
- the tensor.
- """,
- )
- add_docstr_all(
- "q_per_channel_zero_points",
- r"""
- q_per_channel_zero_points() -> Tensor
- Given a Tensor quantized by linear (affine) per-channel quantization,
- returns a tensor of zero_points of the underlying quantizer. It has the number of
- elements that matches the corresponding dimensions (from q_per_channel_axis) of
- the tensor.
- """,
- )
- add_docstr_all(
- "q_per_channel_axis",
- r"""
- q_per_channel_axis() -> int
- Given a Tensor quantized by linear (affine) per-channel quantization,
- returns the index of dimension on which per-channel quantization is applied.
- """,
- )
- add_docstr_all(
- "random_",
- r"""
- random_(from=0, to=None, *, generator=None) -> Tensor
- Fills :attr:`self` tensor with numbers sampled from the discrete uniform
- distribution over ``[from, to - 1]``. If not specified, the values are usually
- only bounded by :attr:`self` tensor's data type. However, for floating point
- types, if unspecified, range will be ``[0, 2^mantissa]`` to ensure that every
- value is representable. For example, `torch.tensor(1, dtype=torch.double).random_()`
- will be uniform in ``[0, 2^53]``.
- """,
- )
- add_docstr_all(
- "rad2deg",
- r"""
- rad2deg() -> Tensor
- See :func:`torch.rad2deg`
- """,
- )
- add_docstr_all(
- "rad2deg_",
- r"""
- rad2deg_() -> Tensor
- In-place version of :meth:`~Tensor.rad2deg`
- """,
- )
- add_docstr_all(
- "deg2rad",
- r"""
- deg2rad() -> Tensor
- See :func:`torch.deg2rad`
- """,
- )
- add_docstr_all(
- "deg2rad_",
- r"""
- deg2rad_() -> Tensor
- In-place version of :meth:`~Tensor.deg2rad`
- """,
- )
- add_docstr_all(
- "ravel",
- r"""
- ravel() -> Tensor
- see :func:`torch.ravel`
- """,
- )
- add_docstr_all(
- "reciprocal",
- r"""
- reciprocal() -> Tensor
- See :func:`torch.reciprocal`
- """,
- )
- add_docstr_all(
- "reciprocal_",
- r"""
- reciprocal_() -> Tensor
- In-place version of :meth:`~Tensor.reciprocal`
- """,
- )
- add_docstr_all(
- "record_stream",
- r"""
- record_stream(stream)
- Marks the tensor as having been used by this stream. When the tensor
- is deallocated, ensure the tensor memory is not reused for another tensor
- until all work queued on :attr:`stream` at the time of deallocation is
- complete.
- .. note::
- The caching allocator is aware of only the stream where a tensor was
- allocated. Due to the awareness, it already correctly manages the life
- cycle of tensors on only one stream. But if a tensor is used on a stream
- different from the stream of origin, the allocator might reuse the memory
- unexpectedly. Calling this method lets the allocator know which streams
- have used the tensor.
- .. warning::
- This method is most suitable for use cases where you are providing a
- function that created a tensor on a side stream, and want users to be able
- to make use of the tensor without having to think carefully about stream
- safety when making use of them. These safety guarantees come at some
- performance and predictability cost (analogous to the tradeoff between GC
- and manual memory management), so if you are in a situation where
- you manage the full lifetime of your tensors, you may consider instead
- manually managing CUDA events so that calling this method is not necessary.
- In particular, when you call this method, on later allocations the
- allocator will poll the recorded stream to see if all operations have
- completed yet; you can potentially race with side stream computation and
- non-deterministically reuse or fail to reuse memory for an allocation.
- You can safely use tensors allocated on side streams without
- :meth:`~Tensor.record_stream`; you must manually ensure that
- any non-creation stream uses of a tensor are synced back to the creation
- stream before you deallocate the tensor. As the CUDA caching allocator
- guarantees that the memory will only be reused with the same creation stream,
- this is sufficient to ensure that writes to future reallocations of the
- memory will be delayed until non-creation stream uses are done.
- (Counterintuitively, you may observe that on the CPU side we have already
- reallocated the tensor, even though CUDA kernels on the old tensor are
- still in progress. This is fine, because CUDA operations on the new
- tensor will appropriately wait for the old operations to complete, as they
- are all on the same stream.)
- Concretely, this looks like this::
- with torch.cuda.stream(s0):
- x = torch.zeros(N)
- s1.wait_stream(s0)
- with torch.cuda.stream(s1):
- y = some_comm_op(x)
- ... some compute on s0 ...
- # synchronize creation stream s0 to side stream s1
- # before deallocating x
- s0.wait_stream(s1)
- del x
- Note that some discretion is required when deciding when to perform
- ``s0.wait_stream(s1)``. In particular, if we were to wait immediately
- after ``some_comm_op``, there wouldn't be any point in having the side
- stream; it would be equivalent to have run ``some_comm_op`` on ``s0``.
- Instead, the synchronization must be placed at some appropriate, later
- point in time where you expect the side stream ``s1`` to have finished
- work. This location is typically identified via profiling, e.g., using
- Chrome traces produced
- :meth:`torch.autograd.profiler.profile.export_chrome_trace`. If you
- place the wait too early, work on s0 will block until ``s1`` has finished,
- preventing further overlapping of communication and computation. If you
- place the wait too late, you will use more memory than is strictly
- necessary (as you are keeping ``x`` live for longer.) For a concrete
- example of how this guidance can be applied in practice, see this post:
- `FSDP and CUDACachingAllocator
- <https://dev-discuss.pytorch.org/t/fsdp-cudacachingallocator-an-outsider-newb-perspective/1486>`_.
- """,
- )
- add_docstr_all(
- "remainder",
- r"""
- remainder(divisor) -> Tensor
- See :func:`torch.remainder`
- """,
- )
- add_docstr_all(
- "remainder_",
- r"""
- remainder_(divisor) -> Tensor
- In-place version of :meth:`~Tensor.remainder`
- """,
- )
- add_docstr_all(
- "renorm",
- r"""
- renorm(p, dim, maxnorm) -> Tensor
- See :func:`torch.renorm`
- """,
- )
- add_docstr_all(
- "renorm_",
- r"""
- renorm_(p, dim, maxnorm) -> Tensor
- In-place version of :meth:`~Tensor.renorm`
- """,
- )
- add_docstr_all(
- "repeat",
- r"""
- repeat(*repeats) -> Tensor
- Repeats this tensor along the specified dimensions.
- Unlike :meth:`~Tensor.expand`, this function copies the tensor's data.
- .. warning::
- :meth:`~Tensor.repeat` behaves differently from
- `numpy.repeat <https://numpy.org/doc/stable/reference/generated/numpy.repeat.html>`_,
- but is more similar to
- `numpy.tile <https://numpy.org/doc/stable/reference/generated/numpy.tile.html>`_.
- For the operator similar to `numpy.repeat`, see :func:`torch.repeat_interleave`.
- Args:
- repeat (torch.Size, int..., tuple of int or list of int): The number of times to repeat this tensor along each dimension
- Example::
- >>> x = torch.tensor([1, 2, 3])
- >>> x.repeat(4, 2)
- tensor([[ 1, 2, 3, 1, 2, 3],
- [ 1, 2, 3, 1, 2, 3],
- [ 1, 2, 3, 1, 2, 3],
- [ 1, 2, 3, 1, 2, 3]])
- >>> x.repeat(4, 2, 1).size()
- torch.Size([4, 2, 3])
- """,
- )
- add_docstr_all(
- "repeat_interleave",
- r"""
- repeat_interleave(repeats, dim=None, *, output_size=None) -> Tensor
- See :func:`torch.repeat_interleave`.
- """,
- )
- add_docstr_all(
- "requires_grad_",
- r"""
- requires_grad_(requires_grad=True) -> Tensor
- Change if autograd should record operations on this tensor: sets this tensor's
- :attr:`requires_grad` attribute in-place. Returns this tensor.
- :func:`requires_grad_`'s main use case is to tell autograd to begin recording
- operations on a Tensor ``tensor``. If ``tensor`` has ``requires_grad=False``
- (because it was obtained through a DataLoader, or required preprocessing or
- initialization), ``tensor.requires_grad_()`` makes it so that autograd will
- begin to record operations on ``tensor``.
- Args:
- requires_grad (bool): If autograd should record operations on this tensor.
- Default: ``True``.
- Example::
- >>> # Let's say we want to preprocess some saved weights and use
- >>> # the result as new weights.
- >>> saved_weights = [0.1, 0.2, 0.3, 0.25]
- >>> loaded_weights = torch.tensor(saved_weights)
- >>> weights = preprocess(loaded_weights) # some function
- >>> weights
- tensor([-0.5503, 0.4926, -2.1158, -0.8303])
- >>> # Now, start to record operations done to weights
- >>> weights.requires_grad_()
- >>> out = weights.pow(2).sum()
- >>> out.backward()
- >>> weights.grad
- tensor([-1.1007, 0.9853, -4.2316, -1.6606])
- """,
- )
- add_docstr_all(
- "reshape",
- r"""
- reshape(*shape) -> Tensor
- Returns a tensor with the same data and number of elements as :attr:`self`
- but with the specified shape. This method returns a view if :attr:`shape` is
- compatible with the current shape. See :meth:`torch.Tensor.view` on when it is
- possible to return a view.
- See :func:`torch.reshape`
- Args:
- shape (tuple of ints or int...): the desired shape
- """,
- )
- add_docstr_all(
- "reshape_as",
- r"""
- reshape_as(other) -> Tensor
- Returns this tensor as the same shape as :attr:`other`.
- ``self.reshape_as(other)`` is equivalent to ``self.reshape(other.sizes())``.
- This method returns a view if ``other.sizes()`` is compatible with the current
- shape. See :meth:`torch.Tensor.view` on when it is possible to return a view.
- Please see :meth:`reshape` for more information about ``reshape``.
- Args:
- other (:class:`torch.Tensor`): The result tensor has the same shape
- as :attr:`other`.
- """,
- )
- add_docstr_all(
- "resize_",
- r"""
- resize_(*sizes, memory_format=torch.contiguous_format) -> Tensor
- Resizes :attr:`self` tensor to the specified size. If the number of elements is
- larger than the current storage size, then the underlying storage is resized
- to fit the new number of elements. If the number of elements is smaller, the
- underlying storage is not changed. Existing elements are preserved but any new
- memory is uninitialized.
- .. warning::
- This is a low-level method. The storage is reinterpreted as C-contiguous,
- ignoring the current strides (unless the target size equals the current
- size, in which case the tensor is left unchanged). For most purposes, you
- will instead want to use :meth:`~Tensor.view()`, which checks for
- contiguity, or :meth:`~Tensor.reshape()`, which copies data if needed. To
- change the size in-place with custom strides, see :meth:`~Tensor.set_()`.
- .. note::
- If :func:`torch.use_deterministic_algorithms()` and
- :attr:`torch.utils.deterministic.fill_uninitialized_memory` are both set to
- ``True``, new elements are initialized to prevent nondeterministic behavior
- from using the result as an input to an operation. Floating point and
- complex values are set to NaN, and integer values are set to the maximum
- value.
- Args:
- sizes (torch.Size or int...): the desired size
- memory_format (:class:`torch.memory_format`, optional): the desired memory format of
- Tensor. Default: ``torch.contiguous_format``. Note that memory format of
- :attr:`self` is going to be unaffected if ``self.size()`` matches ``sizes``.
- Example::
- >>> x = torch.tensor([[1, 2], [3, 4], [5, 6]])
- >>> x.resize_(2, 2)
- tensor([[ 1, 2],
- [ 3, 4]])
- """,
- )
- add_docstr_all(
- "resize_as_",
- r"""
- resize_as_(tensor, memory_format=torch.contiguous_format) -> Tensor
- Resizes the :attr:`self` tensor to be the same size as the specified
- :attr:`tensor`. This is equivalent to ``self.resize_(tensor.size())``.
- Args:
- memory_format (:class:`torch.memory_format`, optional): the desired memory format of
- Tensor. Default: ``torch.contiguous_format``. Note that memory format of
- :attr:`self` is going to be unaffected if ``self.size()`` matches ``tensor.size()``.
- """,
- )
- add_docstr_all(
- "rot90",
- r"""
- rot90(k, dims) -> Tensor
- See :func:`torch.rot90`
- """,
- )
- add_docstr_all(
- "round",
- r"""
- round(decimals=0) -> Tensor
- See :func:`torch.round`
- """,
- )
- add_docstr_all(
- "round_",
- r"""
- round_(decimals=0) -> Tensor
- In-place version of :meth:`~Tensor.round`
- """,
- )
- add_docstr_all(
- "rsqrt",
- r"""
- rsqrt() -> Tensor
- See :func:`torch.rsqrt`
- """,
- )
- add_docstr_all(
- "rsqrt_",
- r"""
- rsqrt_() -> Tensor
- In-place version of :meth:`~Tensor.rsqrt`
- """,
- )
- add_docstr_all(
- "scatter_",
- r"""
- scatter_(dim, index, src, *, reduce=None) -> Tensor
- Writes all values from the tensor :attr:`src` into :attr:`self` at the indices
- specified in the :attr:`index` tensor. For each value in :attr:`src`, its output
- index is specified by its index in :attr:`src` for ``dimension != dim`` and by
- the corresponding value in :attr:`index` for ``dimension = dim``.
- For a 3-D tensor, :attr:`self` is updated as::
- self[index[i][j][k]][j][k] = src[i][j][k] # if dim == 0
- self[i][index[i][j][k]][k] = src[i][j][k] # if dim == 1
- self[i][j][index[i][j][k]] = src[i][j][k] # if dim == 2
- This is the reverse operation of the manner described in :meth:`~Tensor.gather`.
- It is also required that
- ``index.size(d) <= src.size(d)`` for all dimensions ``d``, and that
- ``index.size(d) <= self.size(d)`` for all dimensions ``d != dim``.
- Note that ``input`` and ``index`` do not broadcast against each other for NPUs,
- so when running on NPUs, :attr:`input` and :attr:`index` must have the same number of dimensions.
- Standard broadcasting occurs in all other cases.
- Moreover, as for :meth:`~Tensor.gather`, the values of :attr:`index` must be
- between ``0`` and ``self.size(dim) - 1`` inclusive.
- .. warning::
- When indices are not unique, the behavior is non-deterministic (one of the
- values from ``src`` will be picked arbitrarily) and the gradient will be
- incorrect (it will be propagated to all locations in the source that
- correspond to the same index)!
- .. note::
- The backward pass is implemented only for ``src.shape == index.shape``.
- Additionally accepts an optional :attr:`reduce` argument that allows
- specification of an optional reduction operation, which is applied to all
- values in the tensor :attr:`src` into :attr:`self` at the indices
- specified in the :attr:`index`. For each value in :attr:`src`, the reduction
- operation is applied to an index in :attr:`self` which is specified by
- its index in :attr:`src` for ``dimension != dim`` and by the corresponding
- value in :attr:`index` for ``dimension = dim``.
- Given a 3-D tensor and reduction using the multiplication operation, :attr:`self`
- is updated as::
- self[index[i][j][k]][j][k] *= src[i][j][k] # if dim == 0
- self[i][index[i][j][k]][k] *= src[i][j][k] # if dim == 1
- self[i][j][index[i][j][k]] *= src[i][j][k] # if dim == 2
- Reducing with the addition operation is the same as using
- :meth:`~torch.Tensor.scatter_add_`.
- .. warning::
- The reduce argument with Tensor ``src`` is deprecated and will be removed in
- a future PyTorch release. Please use :meth:`~torch.Tensor.scatter_reduce_`
- instead for more reduction options.
- Args:
- dim (int): the axis along which to index
- index (LongTensor): the indices of elements to scatter, can be either empty
- or of the same dimensionality as ``src``. When empty, the operation
- returns ``self`` unchanged.
- src (Tensor): the source element(s) to scatter.
- Keyword args:
- reduce (str, optional): reduction operation to apply, can be either
- ``'add'`` or ``'multiply'``.
- Example::
- >>> src = torch.arange(1, 11).reshape((2, 5))
- >>> src
- tensor([[ 1, 2, 3, 4, 5],
- [ 6, 7, 8, 9, 10]])
- >>> index = torch.tensor([[0, 1, 2, 0]])
- >>> torch.zeros(3, 5, dtype=src.dtype).scatter_(0, index, src)
- tensor([[1, 0, 0, 4, 0],
- [0, 2, 0, 0, 0],
- [0, 0, 3, 0, 0]])
- >>> index = torch.tensor([[0, 1, 2], [0, 1, 4]])
- >>> torch.zeros(3, 5, dtype=src.dtype).scatter_(1, index, src)
- tensor([[1, 2, 3, 0, 0],
- [6, 7, 0, 0, 8],
- [0, 0, 0, 0, 0]])
- >>> torch.full((2, 4), 2.).scatter_(1, torch.tensor([[2], [3]]),
- ... 1.23, reduce='multiply')
- tensor([[2.0000, 2.0000, 2.4600, 2.0000],
- [2.0000, 2.0000, 2.0000, 2.4600]])
- >>> torch.full((2, 4), 2.).scatter_(1, torch.tensor([[2], [3]]),
- ... 1.23, reduce='add')
- tensor([[2.0000, 2.0000, 3.2300, 2.0000],
- [2.0000, 2.0000, 2.0000, 3.2300]])
- .. function:: scatter_(dim, index, value, *, reduce=None) -> Tensor:
- :noindex:
- Writes the value from :attr:`value` into :attr:`self` at the indices
- specified in the :attr:`index` tensor. This operation is equivalent to the previous version,
- with the :attr:`src` tensor filled entirely with :attr:`value`.
- Args:
- dim (int): the axis along which to index
- index (LongTensor): the indices of elements to scatter, can be either empty
- or of the same dimensionality as ``src``. When empty, the operation
- returns ``self`` unchanged.
- value (Scalar): the value to scatter.
- Keyword args:
- reduce (str, optional): reduction operation to apply, can be either
- ``'add'`` or ``'multiply'``.
- Example::
- >>> index = torch.tensor([[0, 1]])
- >>> value = 2
- >>> torch.zeros(3, 5).scatter_(0, index, value)
- tensor([[2., 0., 0., 0., 0.],
- [0., 2., 0., 0., 0.],
- [0., 0., 0., 0., 0.]])
- """,
- )
- add_docstr_all(
- "scatter_add_",
- r"""
- scatter_add_(dim, index, src) -> Tensor
- Adds all values from the tensor :attr:`src` into :attr:`self` at the indices
- specified in the :attr:`index` tensor in a similar fashion as
- :meth:`~torch.Tensor.scatter_`. For each value in :attr:`src`, it is added to
- an index in :attr:`self` which is specified by its index in :attr:`src`
- for ``dimension != dim`` and by the corresponding value in :attr:`index` for
- ``dimension = dim``.
- For a 3-D tensor, :attr:`self` is updated as::
- self[index[i][j][k]][j][k] += src[i][j][k] # if dim == 0
- self[i][index[i][j][k]][k] += src[i][j][k] # if dim == 1
- self[i][j][index[i][j][k]] += src[i][j][k] # if dim == 2
- :attr:`self`, :attr:`index` and :attr:`src` should have same number of
- dimensions. It is also required that ``index.size(d) <= src.size(d)`` for all
- dimensions ``d``, and that ``index.size(d) <= self.size(d)`` for all dimensions
- ``d != dim``. Note that ``index`` and ``src`` do not broadcast.
- When :attr:`index` is empty, we always return the original tensor
- without further error checking.
- Note:
- {forward_reproducibility_note}
- .. note::
- The backward pass is implemented only for ``src.shape == index.shape``.
- Args:
- dim (int): the axis along which to index
- index (LongTensor): the indices of elements to scatter and add, can be
- either empty or of the same dimensionality as ``src``. When empty, the
- operation returns ``self`` unchanged.
- src (Tensor): the source elements to scatter and add
- Example::
- >>> src = torch.ones((2, 5))
- >>> index = torch.tensor([[0, 1, 2, 0, 0]])
- >>> torch.zeros(3, 5, dtype=src.dtype).scatter_add_(0, index, src)
- tensor([[1., 0., 0., 1., 1.],
- [0., 1., 0., 0., 0.],
- [0., 0., 1., 0., 0.]])
- >>> index = torch.tensor([[0, 1, 2, 0, 0], [0, 1, 2, 2, 2]])
- >>> torch.zeros(3, 5, dtype=src.dtype).scatter_add_(0, index, src)
- tensor([[2., 0., 0., 1., 1.],
- [0., 2., 0., 0., 0.],
- [0., 0., 2., 1., 1.]])
- """.format(**reproducibility_notes),
- )
- add_docstr_all(
- "scatter_reduce_",
- r"""
- scatter_reduce_(dim, index, src, reduce, *, include_self=True) -> Tensor
- Reduces all values from the :attr:`src` tensor to the indices specified in
- the :attr:`index` tensor in the :attr:`self` tensor using the applied reduction
- defined via the :attr:`reduce` argument (:obj:`"sum"`, :obj:`"prod"`, :obj:`"mean"`,
- :obj:`"amax"`, :obj:`"amin"`). For each value in :attr:`src`, it is reduced to an
- index in :attr:`self` which is specified by its index in :attr:`src` for
- ``dimension != dim`` and by the corresponding value in :attr:`index` for
- ``dimension = dim``. If :obj:`include_self="True"`, the values in the :attr:`self`
- tensor are included in the reduction.
- :attr:`self`, :attr:`index` and :attr:`src` should all have
- the same number of dimensions. It is also required that
- ``index.size(d) <= src.size(d)`` for all dimensions ``d``, and that
- ``index.size(d) <= self.size(d)`` for all dimensions ``d != dim``.
- Note that ``index`` and ``src`` do not broadcast.
- For a 3-D tensor with :obj:`reduce="sum"` and :obj:`include_self=True` the
- output is given as::
- self[index[i][j][k]][j][k] += src[i][j][k] # if dim == 0
- self[i][index[i][j][k]][k] += src[i][j][k] # if dim == 1
- self[i][j][index[i][j][k]] += src[i][j][k] # if dim == 2
- Note:
- {forward_reproducibility_note}
- .. note::
- The backward pass is implemented only for ``src.shape == index.shape``.
- .. warning::
- This function is in beta and may change in the near future.
- Args:
- dim (int): the axis along which to index
- index (LongTensor): the indices of elements to scatter and reduce.
- src (Tensor): the source elements to scatter and reduce
- reduce (str): the reduction operation to apply for non-unique indices
- (:obj:`"sum"`, :obj:`"prod"`, :obj:`"mean"`, :obj:`"amax"`, :obj:`"amin"`)
- include_self (bool): whether elements from the :attr:`self` tensor are
- included in the reduction
- Example::
- >>> src = torch.tensor([1., 2., 3., 4., 5., 6.])
- >>> index = torch.tensor([0, 1, 0, 1, 2, 1])
- >>> input = torch.tensor([1., 2., 3., 4.])
- >>> input.scatter_reduce(0, index, src, reduce="sum")
- tensor([5., 14., 8., 4.])
- >>> input.scatter_reduce(0, index, src, reduce="sum", include_self=False)
- tensor([4., 12., 5., 4.])
- >>> input2 = torch.tensor([5., 4., 3., 2.])
- >>> input2.scatter_reduce(0, index, src, reduce="amax")
- tensor([5., 6., 5., 2.])
- >>> input2.scatter_reduce(0, index, src, reduce="amax", include_self=False)
- tensor([3., 6., 5., 2.])
- """.format(**reproducibility_notes),
- )
- add_docstr_all(
- "select",
- r"""
- select(dim, index) -> Tensor
- See :func:`torch.select`
- """,
- )
- add_docstr_all(
- "select_scatter",
- r"""
- select_scatter(src, dim, index) -> Tensor
- See :func:`torch.select_scatter`
- """,
- )
- add_docstr_all(
- "slice_scatter",
- r"""
- slice_scatter(src, dim=0, start=None, end=None, step=1) -> Tensor
- See :func:`torch.slice_scatter`
- """,
- )
- add_docstr_all(
- "set_",
- r"""
- set_(source=None, storage_offset=0, size=None, stride=None) -> Tensor
- Sets the underlying storage, size, and strides. If :attr:`source` is a tensor,
- :attr:`self` tensor will share the same storage and have the same size and
- strides as :attr:`source`. Changes to elements in one tensor will be reflected
- in the other.
- If :attr:`source` is a :class:`~torch.Storage`, the method sets the underlying
- storage, offset, size, and stride.
- Args:
- source (Tensor or Storage): the tensor or storage to use
- storage_offset (int, optional): the offset in the storage
- size (torch.Size, optional): the desired size. Defaults to the size of the source.
- stride (tuple, optional): the desired stride. Defaults to C-contiguous strides.
- """,
- )
- add_docstr_all(
- "sigmoid",
- r"""
- sigmoid() -> Tensor
- See :func:`torch.sigmoid`
- """,
- )
- add_docstr_all(
- "sigmoid_",
- r"""
- sigmoid_() -> Tensor
- In-place version of :meth:`~Tensor.sigmoid`
- """,
- )
- add_docstr_all(
- "logit",
- r"""
- logit() -> Tensor
- See :func:`torch.logit`
- """,
- )
- add_docstr_all(
- "logit_",
- r"""
- logit_() -> Tensor
- In-place version of :meth:`~Tensor.logit`
- """,
- )
- add_docstr_all(
- "sign",
- r"""
- sign() -> Tensor
- See :func:`torch.sign`
- """,
- )
- add_docstr_all(
- "sign_",
- r"""
- sign_() -> Tensor
- In-place version of :meth:`~Tensor.sign`
- """,
- )
- add_docstr_all(
- "signbit",
- r"""
- signbit() -> Tensor
- See :func:`torch.signbit`
- """,
- )
- add_docstr_all(
- "sgn",
- r"""
- sgn() -> Tensor
- See :func:`torch.sgn`
- """,
- )
- add_docstr_all(
- "sgn_",
- r"""
- sgn_() -> Tensor
- In-place version of :meth:`~Tensor.sgn`
- """,
- )
- add_docstr_all(
- "sin",
- r"""
- sin() -> Tensor
- See :func:`torch.sin`
- """,
- )
- add_docstr_all(
- "sin_",
- r"""
- sin_() -> Tensor
- In-place version of :meth:`~Tensor.sin`
- """,
- )
- add_docstr_all(
- "sinc",
- r"""
- sinc() -> Tensor
- See :func:`torch.sinc`
- """,
- )
- add_docstr_all(
- "sinc_",
- r"""
- sinc_() -> Tensor
- In-place version of :meth:`~Tensor.sinc`
- """,
- )
- add_docstr_all(
- "sinh",
- r"""
- sinh() -> Tensor
- See :func:`torch.sinh`
- """,
- )
- add_docstr_all(
- "sinh_",
- r"""
- sinh_() -> Tensor
- In-place version of :meth:`~Tensor.sinh`
- """,
- )
- add_docstr_all(
- "size",
- r"""
- size(dim=None) -> torch.Size or int
- Returns the size of the :attr:`self` tensor. If ``dim`` is not specified,
- the returned value is a :class:`torch.Size`, a subclass of :class:`tuple`.
- If ``dim`` is specified, returns an int holding the size of that dimension.
- Args:
- dim (int, optional): The dimension for which to retrieve the size.
- Example::
- >>> t = torch.empty(3, 4, 5)
- >>> t.size()
- torch.Size([3, 4, 5])
- >>> t.size(dim=1)
- 4
- """,
- )
- add_docstr_all(
- "shape",
- r"""
- shape() -> torch.Size
- Returns the size of the :attr:`self` tensor. Alias for :attr:`size`.
- See also :meth:`Tensor.size`.
- Example::
- >>> t = torch.empty(3, 4, 5)
- >>> t.size()
- torch.Size([3, 4, 5])
- >>> t.shape
- torch.Size([3, 4, 5])
- """,
- )
- add_docstr_all(
- "sort",
- r"""
- sort(dim=-1, descending=False) -> (Tensor, LongTensor)
- See :func:`torch.sort`
- """,
- )
- add_docstr_all(
- "msort",
- r"""
- msort() -> Tensor
- See :func:`torch.msort`
- """,
- )
- add_docstr_all(
- "argsort",
- r"""
- argsort(dim=-1, descending=False) -> LongTensor
- See :func:`torch.argsort`
- """,
- )
- add_docstr_all(
- "sparse_dim",
- r"""
- sparse_dim() -> int
- Return the number of sparse dimensions in a :ref:`sparse tensor <sparse-docs>` :attr:`self`.
- .. note::
- Returns ``0`` if :attr:`self` is not a sparse tensor.
- See also :meth:`Tensor.dense_dim` and :ref:`hybrid tensors <sparse-hybrid-coo-docs>`.
- """,
- )
- add_docstr_all(
- "sparse_resize_",
- r"""
- sparse_resize_(size, sparse_dim, dense_dim) -> Tensor
- Resizes :attr:`self` :ref:`sparse tensor <sparse-docs>` to the desired
- size and the number of sparse and dense dimensions.
- .. note::
- If the number of specified elements in :attr:`self` is zero, then
- :attr:`size`, :attr:`sparse_dim`, and :attr:`dense_dim` can be any
- size and positive integers such that ``len(size) == sparse_dim +
- dense_dim``.
- If :attr:`self` specifies one or more elements, however, then each
- dimension in :attr:`size` must not be smaller than the corresponding
- dimension of :attr:`self`, :attr:`sparse_dim` must equal the number
- of sparse dimensions in :attr:`self`, and :attr:`dense_dim` must
- equal the number of dense dimensions in :attr:`self`.
- .. warning::
- Throws an error if :attr:`self` is not a sparse tensor.
- Args:
- size (torch.Size): the desired size. If :attr:`self` is non-empty
- sparse tensor, the desired size cannot be smaller than the
- original size.
- sparse_dim (int): the number of sparse dimensions
- dense_dim (int): the number of dense dimensions
- """,
- )
- add_docstr_all(
- "sparse_resize_and_clear_",
- r"""
- sparse_resize_and_clear_(size, sparse_dim, dense_dim) -> Tensor
- Removes all specified elements from a :ref:`sparse tensor
- <sparse-docs>` :attr:`self` and resizes :attr:`self` to the desired
- size and the number of sparse and dense dimensions.
- .. warning:
- Throws an error if :attr:`self` is not a sparse tensor.
- Args:
- size (torch.Size): the desired size.
- sparse_dim (int): the number of sparse dimensions
- dense_dim (int): the number of dense dimensions
- """,
- )
- add_docstr_all(
- "sqrt",
- r"""
- sqrt() -> Tensor
- See :func:`torch.sqrt`
- """,
- )
- add_docstr_all(
- "sqrt_",
- r"""
- sqrt_() -> Tensor
- In-place version of :meth:`~Tensor.sqrt`
- """,
- )
- add_docstr_all(
- "square",
- r"""
- square() -> Tensor
- See :func:`torch.square`
- """,
- )
- add_docstr_all(
- "square_",
- r"""
- square_() -> Tensor
- In-place version of :meth:`~Tensor.square`
- """,
- )
- add_docstr_all(
- "squeeze",
- r"""
- squeeze(dim=None) -> Tensor
- See :func:`torch.squeeze`
- """,
- )
- add_docstr_all(
- "squeeze_",
- r"""
- squeeze_(dim=None) -> Tensor
- In-place version of :meth:`~Tensor.squeeze`
- """,
- )
- add_docstr_all(
- "std",
- r"""
- std(dim=None, *, correction=1, keepdim=False) -> Tensor
- See :func:`torch.std`
- """,
- )
- add_docstr_all(
- "storage_offset",
- r"""
- storage_offset() -> int
- Returns :attr:`self` tensor's offset in the underlying storage in terms of
- number of storage elements (not bytes).
- Example::
- >>> x = torch.tensor([1, 2, 3, 4, 5])
- >>> x.storage_offset()
- 0
- >>> x[3:].storage_offset()
- 3
- """,
- )
- add_docstr_all(
- "untyped_storage",
- r"""
- untyped_storage() -> torch.UntypedStorage
- Returns the underlying :class:`UntypedStorage`.
- """,
- )
- add_docstr_all(
- "stride",
- r"""
- stride(dim) -> tuple or int
- Returns the stride of :attr:`self` tensor.
- Stride is the jump necessary to go from one element to the next one in the
- specified dimension :attr:`dim`. A tuple of all strides is returned when no
- argument is passed in. Otherwise, an integer value is returned as the stride in
- the particular dimension :attr:`dim`.
- Args:
- dim (int, optional): the desired dimension in which stride is required
- Example::
- >>> x = torch.tensor([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
- >>> x.stride()
- (5, 1)
- >>> x.stride(0)
- 5
- >>> x.stride(-1)
- 1
- """,
- )
- add_docstr_all(
- "sub",
- r"""
- sub(other, *, alpha=1) -> Tensor
- See :func:`torch.sub`.
- """,
- )
- add_docstr_all(
- "sub_",
- r"""
- sub_(other, *, alpha=1) -> Tensor
- In-place version of :meth:`~Tensor.sub`
- """,
- )
- add_docstr_all(
- "subtract",
- r"""
- subtract(other, *, alpha=1) -> Tensor
- See :func:`torch.subtract`.
- """,
- )
- add_docstr_all(
- "subtract_",
- r"""
- subtract_(other, *, alpha=1) -> Tensor
- In-place version of :meth:`~Tensor.subtract`.
- """,
- )
- add_docstr_all(
- "sum",
- r"""
- sum(dim=None, keepdim=False, dtype=None) -> Tensor
- See :func:`torch.sum`
- """,
- )
- add_docstr_all(
- "nansum",
- r"""
- nansum(dim=None, keepdim=False, dtype=None) -> Tensor
- See :func:`torch.nansum`
- """,
- )
- add_docstr_all(
- "svd",
- r"""
- svd(some=True, compute_uv=True) -> (Tensor, Tensor, Tensor)
- See :func:`torch.svd`
- """,
- )
- add_docstr_all(
- "swapdims",
- r"""
- swapdims(dim0, dim1) -> Tensor
- See :func:`torch.swapdims`
- """,
- )
- add_docstr_all(
- "swapdims_",
- r"""
- swapdims_(dim0, dim1) -> Tensor
- In-place version of :meth:`~Tensor.swapdims`
- """,
- )
- add_docstr_all(
- "swapaxes",
- r"""
- swapaxes(axis0, axis1) -> Tensor
- See :func:`torch.swapaxes`
- """,
- )
- add_docstr_all(
- "swapaxes_",
- r"""
- swapaxes_(axis0, axis1) -> Tensor
- In-place version of :meth:`~Tensor.swapaxes`
- """,
- )
- add_docstr_all(
- "t",
- r"""
- t() -> Tensor
- See :func:`torch.t`
- """,
- )
- add_docstr_all(
- "t_",
- r"""
- t_() -> Tensor
- In-place version of :meth:`~Tensor.t`
- """,
- )
- add_docstr_all(
- "tile",
- r"""
- tile(dims) -> Tensor
- See :func:`torch.tile`
- """,
- )
- add_docstr_all(
- "to",
- r"""
- to(*args, **kwargs) -> Tensor
- Performs Tensor dtype and/or device conversion. A :class:`torch.dtype` and :class:`torch.device` are
- inferred from the arguments of ``self.to(*args, **kwargs)``.
- .. note::
- If the ``self`` Tensor already
- has the correct :class:`torch.dtype` and :class:`torch.device`, then ``self`` is returned.
- Otherwise, the returned tensor is a copy of ``self`` with the desired
- :class:`torch.dtype` and :class:`torch.device`.
- .. note::
- If ``self`` requires gradients (``requires_grad=True``) but the target
- ``dtype`` specified is an integer type, the returned tensor will implicitly
- set ``requires_grad=False``. This is because only tensors with
- floating-point or complex dtypes can require gradients.
- Here are the ways to call ``to``:
- .. method:: to(dtype, non_blocking=False, copy=False, memory_format=torch.preserve_format) -> Tensor
- :noindex:
- Returns a Tensor with the specified :attr:`dtype`
- Args:
- {memory_format}
- .. note::
- According to `C++ type conversion rules <https://en.cppreference.com/w/cpp/language/implicit_conversion.html>`_,
- converting floating point value to integer type will truncate the fractional part.
- If the truncated value cannot fit into the target type (e.g., casting ``torch.inf`` to ``torch.long``),
- the behavior is undefined and the result may vary across platforms.
- .. method:: to(device=None, dtype=None, non_blocking=False, copy=False, memory_format=torch.preserve_format) -> Tensor
- :noindex:
- Returns a Tensor with the specified :attr:`device` and (optional)
- :attr:`dtype`. If :attr:`dtype` is ``None`` it is inferred to be ``self.dtype``.
- When :attr:`non_blocking` is set to ``True``, the function attempts to perform
- the conversion asynchronously with respect to the host, if possible. This
- asynchronous behavior applies to both pinned and pageable memory. However,
- caution is advised when using this feature. For more information, refer to the
- `tutorial on good usage of non_blocking and pin_memory <https://pytorch.org/tutorials/intermediate/pinmem_nonblock.html>`__.
- When :attr:`copy` is set, a new Tensor is created even when the Tensor
- already matches the desired conversion.
- Args:
- {memory_format}
- .. method:: to(other, non_blocking=False, copy=False) -> Tensor
- :noindex:
- Returns a Tensor with same :class:`torch.dtype` and :class:`torch.device` as
- the Tensor :attr:`other`.
- When :attr:`non_blocking` is set to ``True``, the function attempts to perform
- the conversion asynchronously with respect to the host, if possible. This
- asynchronous behavior applies to both pinned and pageable memory. However,
- caution is advised when using this feature. For more information, refer to the
- `tutorial on good usage of non_blocking and pin_memory <https://pytorch.org/tutorials/intermediate/pinmem_nonblock.html>`__.
- When :attr:`copy` is set, a new Tensor is created even when the Tensor
- already matches the desired conversion.
- Example::
- >>> tensor = torch.randn(2, 2) # Initially dtype=float32, device=cpu
- >>> tensor.to(torch.float64)
- tensor([[-0.5044, 0.0005],
- [ 0.3310, -0.0584]], dtype=torch.float64)
- >>> cuda0 = torch.device('cuda:0')
- >>> tensor.to(cuda0)
- tensor([[-0.5044, 0.0005],
- [ 0.3310, -0.0584]], device='cuda:0')
- >>> tensor.to(cuda0, dtype=torch.float64)
- tensor([[-0.5044, 0.0005],
- [ 0.3310, -0.0584]], dtype=torch.float64, device='cuda:0')
- >>> other = torch.randn((), dtype=torch.float64, device=cuda0)
- >>> tensor.to(other, non_blocking=True)
- tensor([[-0.5044, 0.0005],
- [ 0.3310, -0.0584]], dtype=torch.float64, device='cuda:0')
- """.format(**common_args),
- )
- add_docstr_all(
- "byte",
- r"""
- byte(memory_format=torch.preserve_format) -> Tensor
- ``self.byte()`` is equivalent to ``self.to(torch.uint8)``. See :func:`to`.
- Args:
- {memory_format}
- """.format(**common_args),
- )
- add_docstr_all(
- "bool",
- r"""
- bool(memory_format=torch.preserve_format) -> Tensor
- ``self.bool()`` is equivalent to ``self.to(torch.bool)``. See :func:`to`.
- Args:
- {memory_format}
- """.format(**common_args),
- )
- add_docstr_all(
- "char",
- r"""
- char(memory_format=torch.preserve_format) -> Tensor
- ``self.char()`` is equivalent to ``self.to(torch.int8)``. See :func:`to`.
- Args:
- {memory_format}
- """.format(**common_args),
- )
- add_docstr_all(
- "bfloat16",
- r"""
- bfloat16(memory_format=torch.preserve_format) -> Tensor
- ``self.bfloat16()`` is equivalent to ``self.to(torch.bfloat16)``. See :func:`to`.
- Args:
- {memory_format}
- """.format(**common_args),
- )
- add_docstr_all(
- "double",
- r"""
- double(memory_format=torch.preserve_format) -> Tensor
- ``self.double()`` is equivalent to ``self.to(torch.float64)``. See :func:`to`.
- Args:
- {memory_format}
- """.format(**common_args),
- )
- add_docstr_all(
- "float",
- r"""
- float(memory_format=torch.preserve_format) -> Tensor
- ``self.float()`` is equivalent to ``self.to(torch.float32)``. See :func:`to`.
- Args:
- {memory_format}
- """.format(**common_args),
- )
- add_docstr_all(
- "cdouble",
- r"""
- cdouble(memory_format=torch.preserve_format) -> Tensor
- ``self.cdouble()`` is equivalent to ``self.to(torch.complex128)``. See :func:`to`.
- Args:
- {memory_format}
- """.format(**common_args),
- )
- add_docstr_all(
- "cfloat",
- r"""
- cfloat(memory_format=torch.preserve_format) -> Tensor
- ``self.cfloat()`` is equivalent to ``self.to(torch.complex64)``. See :func:`to`.
- Args:
- {memory_format}
- """.format(**common_args),
- )
- add_docstr_all(
- "chalf",
- r"""
- chalf(memory_format=torch.preserve_format) -> Tensor
- ``self.chalf()`` is equivalent to ``self.to(torch.complex32)``. See :func:`to`.
- Args:
- {memory_format}
- """.format(**common_args),
- )
- add_docstr_all(
- "half",
- r"""
- half(memory_format=torch.preserve_format) -> Tensor
- ``self.half()`` is equivalent to ``self.to(torch.float16)``. See :func:`to`.
- Args:
- {memory_format}
- """.format(**common_args),
- )
- add_docstr_all(
- "int",
- r"""
- int(memory_format=torch.preserve_format) -> Tensor
- ``self.int()`` is equivalent to ``self.to(torch.int32)``. See :func:`to`.
- Args:
- {memory_format}
- """.format(**common_args),
- )
- add_docstr_all(
- "int_repr",
- r"""
- int_repr() -> Tensor
- Given a quantized Tensor,
- ``self.int_repr()`` returns a CPU Tensor with uint8_t as data type that stores the
- underlying uint8_t values of the given Tensor.
- """,
- )
- add_docstr_all(
- "long",
- r"""
- long(memory_format=torch.preserve_format) -> Tensor
- ``self.long()`` is equivalent to ``self.to(torch.int64)``. See :func:`to`.
- Args:
- {memory_format}
- """.format(**common_args),
- )
- add_docstr_all(
- "short",
- r"""
- short(memory_format=torch.preserve_format) -> Tensor
- ``self.short()`` is equivalent to ``self.to(torch.int16)``. See :func:`to`.
- Args:
- {memory_format}
- """.format(**common_args),
- )
- add_docstr_all(
- "take",
- r"""
- take(indices) -> Tensor
- See :func:`torch.take`
- """,
- )
- add_docstr_all(
- "take_along_dim",
- r"""
- take_along_dim(indices, dim) -> Tensor
- See :func:`torch.take_along_dim`
- """,
- )
- add_docstr_all(
- "tan",
- r"""
- tan() -> Tensor
- See :func:`torch.tan`
- """,
- )
- add_docstr_all(
- "tan_",
- r"""
- tan_() -> Tensor
- In-place version of :meth:`~Tensor.tan`
- """,
- )
- add_docstr_all(
- "tanh",
- r"""
- tanh() -> Tensor
- See :func:`torch.tanh`
- """,
- )
- add_docstr_all(
- "softmax",
- r"""
- softmax(dim) -> Tensor
- Alias for :func:`torch.nn.functional.softmax`.
- """,
- )
- add_docstr_all(
- "tanh_",
- r"""
- tanh_() -> Tensor
- In-place version of :meth:`~Tensor.tanh`
- """,
- )
- add_docstr_all(
- "tolist",
- r"""
- tolist() -> list or number
- Returns the tensor as a (nested) list. For scalars, a standard
- Python number is returned, just like with :meth:`~Tensor.item`.
- Tensors are automatically moved to the CPU first if necessary.
- This operation is not differentiable.
- Examples::
- >>> a = torch.randn(2, 2)
- >>> a.tolist()
- [[0.012766935862600803, 0.5415473580360413],
- [-0.08909505605697632, 0.7729271650314331]]
- >>> a[0,0].tolist()
- 0.012766935862600803
- """,
- )
- add_docstr_all(
- "topk",
- r"""
- topk(k, dim=None, largest=True, sorted=True) -> (Tensor, LongTensor)
- See :func:`torch.topk`
- """,
- )
- add_docstr_all(
- "to_dense",
- r"""
- to_dense(dtype=None, *, masked_grad=True) -> Tensor
- Creates a strided copy of :attr:`self` if :attr:`self` is not a strided tensor, otherwise returns :attr:`self`.
- Keyword args:
- {dtype}
- masked_grad (bool, optional): If set to ``True`` (default) and
- :attr:`self` has a sparse layout then the backward of
- :meth:`to_dense` returns ``grad.sparse_mask(self)``.
- Example::
- >>> s = torch.sparse_coo_tensor(
- ... torch.tensor([[1, 1],
- ... [0, 2]]),
- ... torch.tensor([9, 10]),
- ... size=(3, 3))
- >>> s.to_dense()
- tensor([[ 0, 0, 0],
- [ 9, 0, 10],
- [ 0, 0, 0]])
- """,
- )
- add_docstr_all(
- "to_sparse",
- r"""
- to_sparse(sparseDims) -> Tensor
- Returns a sparse copy of the tensor. PyTorch supports sparse tensors in
- :ref:`coordinate format <sparse-coo-docs>`.
- Args:
- sparseDims (int, optional): the number of sparse dimensions to include in the new sparse tensor
- Example::
- >>> d = torch.tensor([[0, 0, 0], [9, 0, 10], [0, 0, 0]])
- >>> d
- tensor([[ 0, 0, 0],
- [ 9, 0, 10],
- [ 0, 0, 0]])
- >>> d.to_sparse()
- tensor(indices=tensor([[1, 1],
- [0, 2]]),
- values=tensor([ 9, 10]),
- size=(3, 3), nnz=2, layout=torch.sparse_coo)
- >>> d.to_sparse(1)
- tensor(indices=tensor([[1]]),
- values=tensor([[ 9, 0, 10]]),
- size=(3, 3), nnz=1, layout=torch.sparse_coo)
- .. method:: to_sparse(*, layout=None, blocksize=None, dense_dim=None) -> Tensor
- :noindex:
- Returns a sparse tensor with the specified layout and blocksize. If
- the :attr:`self` is strided, the number of dense dimensions could be
- specified, and a hybrid sparse tensor will be created, with
- `dense_dim` dense dimensions and `self.dim() - 2 - dense_dim` batch
- dimension.
- .. note:: If the :attr:`self` layout and blocksize parameters match
- with the specified layout and blocksize, return
- :attr:`self`. Otherwise, return a sparse tensor copy of
- :attr:`self`.
- Args:
- layout (:class:`torch.layout`, optional): The desired sparse
- layout. One of ``torch.sparse_coo``, ``torch.sparse_csr``,
- ``torch.sparse_csc``, ``torch.sparse_bsr``, or
- ``torch.sparse_bsc``. Default: if ``None``,
- ``torch.sparse_coo``.
- blocksize (list, tuple, :class:`torch.Size`, optional): Block size
- of the resulting BSR or BSC tensor. For other layouts,
- specifying the block size that is not ``None`` will result in a
- RuntimeError exception. A block size must be a tuple of length
- two such that its items evenly divide the two sparse dimensions.
- dense_dim (int, optional): Number of dense dimensions of the
- resulting CSR, CSC, BSR or BSC tensor. This argument should be
- used only if :attr:`self` is a strided tensor, and must be a
- value between 0 and dimension of :attr:`self` tensor minus two.
- Example::
- >>> x = torch.tensor([[1, 0], [0, 0], [2, 3]])
- >>> x.to_sparse(layout=torch.sparse_coo)
- tensor(indices=tensor([[0, 2, 2],
- [0, 0, 1]]),
- values=tensor([1, 2, 3]),
- size=(3, 2), nnz=3, layout=torch.sparse_coo)
- >>> x.to_sparse(layout=torch.sparse_bsr, blocksize=(1, 2))
- tensor(crow_indices=tensor([0, 1, 1, 2]),
- col_indices=tensor([0, 0]),
- values=tensor([[[1, 0]],
- [[2, 3]]]), size=(3, 2), nnz=2, layout=torch.sparse_bsr)
- >>> x.to_sparse(layout=torch.sparse_bsr, blocksize=(2, 1))
- RuntimeError: Tensor size(-2) 3 needs to be divisible by blocksize[0] 2
- >>> x.to_sparse(layout=torch.sparse_csr, blocksize=(3, 1))
- RuntimeError: to_sparse for Strided to SparseCsr conversion does not use specified blocksize
- >>> x = torch.tensor([[[1], [0]], [[0], [0]], [[2], [3]]])
- >>> x.to_sparse(layout=torch.sparse_csr, dense_dim=1)
- tensor(crow_indices=tensor([0, 1, 1, 3]),
- col_indices=tensor([0, 0, 1]),
- values=tensor([[1],
- [2],
- [3]]), size=(3, 2, 1), nnz=3, layout=torch.sparse_csr)
- """,
- )
- add_docstr_all(
- "to_sparse_csr",
- r"""
- to_sparse_csr(dense_dim=None) -> Tensor
- Convert a tensor to compressed row storage format (CSR). Except for
- strided tensors, only works with 2D tensors. If the :attr:`self` is
- strided, then the number of dense dimensions could be specified, and a
- hybrid CSR tensor will be created, with `dense_dim` dense dimensions
- and `self.dim() - 2 - dense_dim` batch dimension.
- Args:
- dense_dim (int, optional): Number of dense dimensions of the
- resulting CSR tensor. This argument should be used only if
- :attr:`self` is a strided tensor, and must be a value between 0
- and dimension of :attr:`self` tensor minus two.
- Example::
- >>> dense = torch.randn(5, 5)
- >>> sparse = dense.to_sparse_csr()
- >>> sparse._nnz()
- 25
- >>> dense = torch.zeros(3, 3, 1, 1)
- >>> dense[0, 0] = dense[1, 2] = dense[2, 1] = 1
- >>> dense.to_sparse_csr(dense_dim=2)
- tensor(crow_indices=tensor([0, 1, 2, 3]),
- col_indices=tensor([0, 2, 1]),
- values=tensor([[[1.]],
- [[1.]],
- [[1.]]]), size=(3, 3, 1, 1), nnz=3,
- layout=torch.sparse_csr)
- """,
- )
- add_docstr_all(
- "to_sparse_csc",
- r"""
- to_sparse_csc() -> Tensor
- Convert a tensor to compressed column storage (CSC) format. Except
- for strided tensors, only works with 2D tensors. If the :attr:`self`
- is strided, then the number of dense dimensions could be specified,
- and a hybrid CSC tensor will be created, with `dense_dim` dense
- dimensions and `self.dim() - 2 - dense_dim` batch dimension.
- Args:
- dense_dim (int, optional): Number of dense dimensions of the
- resulting CSC tensor. This argument should be used only if
- :attr:`self` is a strided tensor, and must be a value between 0
- and dimension of :attr:`self` tensor minus two.
- Example::
- >>> dense = torch.randn(5, 5)
- >>> sparse = dense.to_sparse_csc()
- >>> sparse._nnz()
- 25
- >>> dense = torch.zeros(3, 3, 1, 1)
- >>> dense[0, 0] = dense[1, 2] = dense[2, 1] = 1
- >>> dense.to_sparse_csc(dense_dim=2)
- tensor(ccol_indices=tensor([0, 1, 2, 3]),
- row_indices=tensor([0, 2, 1]),
- values=tensor([[[1.]],
- [[1.]],
- [[1.]]]), size=(3, 3, 1, 1), nnz=3,
- layout=torch.sparse_csc)
- """,
- )
- add_docstr_all(
- "to_sparse_bsr",
- r"""
- to_sparse_bsr(blocksize, dense_dim) -> Tensor
- Convert a tensor to a block sparse row (BSR) storage format of given
- blocksize. If the :attr:`self` is strided, then the number of dense
- dimensions could be specified, and a hybrid BSR tensor will be
- created, with `dense_dim` dense dimensions and `self.dim() - 2 -
- dense_dim` batch dimension.
- Args:
- blocksize (list, tuple, :class:`torch.Size`, optional): Block size
- of the resulting BSR tensor. A block size must be a tuple of
- length two such that its items evenly divide the two sparse
- dimensions.
- dense_dim (int, optional): Number of dense dimensions of the
- resulting BSR tensor. This argument should be used only if
- :attr:`self` is a strided tensor, and must be a value between 0
- and dimension of :attr:`self` tensor minus two.
- Example::
- >>> dense = torch.randn(10, 10)
- >>> sparse = dense.to_sparse_csr()
- >>> sparse_bsr = sparse.to_sparse_bsr((5, 5))
- >>> sparse_bsr.col_indices()
- tensor([0, 1, 0, 1])
- >>> dense = torch.zeros(4, 3, 1)
- >>> dense[0:2, 0] = dense[0:2, 2] = dense[2:4, 1] = 1
- >>> dense.to_sparse_bsr((2, 1), 1)
- tensor(crow_indices=tensor([0, 2, 3]),
- col_indices=tensor([0, 2, 1]),
- values=tensor([[[[1.]],
- [[1.]]],
- [[[1.]],
- [[1.]]],
- [[[1.]],
- [[1.]]]]), size=(4, 3, 1), nnz=3,
- layout=torch.sparse_bsr)
- """,
- )
- add_docstr_all(
- "to_sparse_bsc",
- r"""
- to_sparse_bsc(blocksize, dense_dim) -> Tensor
- Convert a tensor to a block sparse column (BSC) storage format of
- given blocksize. If the :attr:`self` is strided, then the number of
- dense dimensions could be specified, and a hybrid BSC tensor will be
- created, with `dense_dim` dense dimensions and `self.dim() - 2 -
- dense_dim` batch dimension.
- Args:
- blocksize (list, tuple, :class:`torch.Size`, optional): Block size
- of the resulting BSC tensor. A block size must be a tuple of
- length two such that its items evenly divide the two sparse
- dimensions.
- dense_dim (int, optional): Number of dense dimensions of the
- resulting BSC tensor. This argument should be used only if
- :attr:`self` is a strided tensor, and must be a value between 0
- and dimension of :attr:`self` tensor minus two.
- Example::
- >>> dense = torch.randn(10, 10)
- >>> sparse = dense.to_sparse_csr()
- >>> sparse_bsc = sparse.to_sparse_bsc((5, 5))
- >>> sparse_bsc.row_indices()
- tensor([0, 1, 0, 1])
- >>> dense = torch.zeros(4, 3, 1)
- >>> dense[0:2, 0] = dense[0:2, 2] = dense[2:4, 1] = 1
- >>> dense.to_sparse_bsc((2, 1), 1)
- tensor(ccol_indices=tensor([0, 1, 2, 3]),
- row_indices=tensor([0, 1, 0]),
- values=tensor([[[[1.]],
- [[1.]]],
- [[[1.]],
- [[1.]]],
- [[[1.]],
- [[1.]]]]), size=(4, 3, 1), nnz=3,
- layout=torch.sparse_bsc)
- """,
- )
- add_docstr_all(
- "to_mkldnn",
- r"""
- to_mkldnn() -> Tensor
- Returns a copy of the tensor in ``torch.mkldnn`` layout.
- """,
- )
- add_docstr_all(
- "trace",
- r"""
- trace() -> Tensor
- See :func:`torch.trace`
- """,
- )
- add_docstr_all(
- "transpose",
- r"""
- transpose(dim0, dim1) -> Tensor
- See :func:`torch.transpose`
- """,
- )
- add_docstr_all(
- "transpose_",
- r"""
- transpose_(dim0, dim1) -> Tensor
- In-place version of :meth:`~Tensor.transpose`
- """,
- )
- add_docstr_all(
- "triangular_solve",
- r"""
- triangular_solve(A, upper=True, transpose=False, unitriangular=False) -> (Tensor, Tensor)
- See :func:`torch.triangular_solve`
- """,
- )
- add_docstr_all(
- "tril",
- r"""
- tril(diagonal=0) -> Tensor
- See :func:`torch.tril`
- """,
- )
- add_docstr_all(
- "tril_",
- r"""
- tril_(diagonal=0) -> Tensor
- In-place version of :meth:`~Tensor.tril`
- """,
- )
- add_docstr_all(
- "triu",
- r"""
- triu(diagonal=0) -> Tensor
- See :func:`torch.triu`
- """,
- )
- add_docstr_all(
- "triu_",
- r"""
- triu_(diagonal=0) -> Tensor
- In-place version of :meth:`~Tensor.triu`
- """,
- )
- add_docstr_all(
- "true_divide",
- r"""
- true_divide(value) -> Tensor
- See :func:`torch.true_divide`
- """,
- )
- add_docstr_all(
- "true_divide_",
- r"""
- true_divide_(value) -> Tensor
- In-place version of :meth:`~Tensor.true_divide_`
- """,
- )
- add_docstr_all(
- "trunc",
- r"""
- trunc() -> Tensor
- See :func:`torch.trunc`
- """,
- )
- add_docstr_all(
- "fix",
- r"""
- fix() -> Tensor
- See :func:`torch.fix`.
- """,
- )
- add_docstr_all(
- "trunc_",
- r"""
- trunc_() -> Tensor
- In-place version of :meth:`~Tensor.trunc`
- """,
- )
- add_docstr_all(
- "fix_",
- r"""
- fix_() -> Tensor
- In-place version of :meth:`~Tensor.fix`
- """,
- )
- add_docstr_all(
- "type",
- r"""
- type(dtype=None, non_blocking=False, **kwargs) -> str or Tensor
- Returns the type if `dtype` is not provided, else casts this object to
- the specified type.
- If this is already of the correct type, no copy is performed and the
- original object is returned.
- Args:
- dtype (dtype or string): The desired type
- non_blocking (bool): If ``True``, and the source is in pinned memory
- and destination is on the GPU or vice versa, the copy is performed
- asynchronously with respect to the host. Otherwise, the argument
- has no effect.
- **kwargs: For compatibility, may contain the key ``async`` in place of
- the ``non_blocking`` argument. The ``async`` arg is deprecated.
- """,
- )
- add_docstr_all(
- "type_as",
- r"""
- type_as(tensor) -> Tensor
- Returns this tensor cast to the type of the given tensor.
- This is a no-op if the tensor is already of the correct type. This is
- equivalent to ``self.type(tensor.type())``
- Args:
- tensor (Tensor): the tensor which has the desired type
- """,
- )
- add_docstr_all(
- "unfold",
- r"""
- unfold(dimension, size, step) -> Tensor
- Returns a view of the original tensor which contains all slices of size :attr:`size` from
- :attr:`self` tensor in the dimension :attr:`dimension`.
- Step between two slices is given by :attr:`step`.
- If `sizedim` is the size of dimension :attr:`dimension` for :attr:`self`, the size of
- dimension :attr:`dimension` in the returned tensor will be
- `(sizedim - size) / step + 1`.
- An additional dimension of size :attr:`size` is appended in the returned tensor.
- Args:
- dimension (int): dimension in which unfolding happens
- size (int): the size of each slice that is unfolded
- step (int): the step between each slice
- Example::
- >>> x = torch.arange(1., 8)
- >>> x
- tensor([ 1., 2., 3., 4., 5., 6., 7.])
- >>> x.unfold(0, 2, 1)
- tensor([[ 1., 2.],
- [ 2., 3.],
- [ 3., 4.],
- [ 4., 5.],
- [ 5., 6.],
- [ 6., 7.]])
- >>> x.unfold(0, 2, 2)
- tensor([[ 1., 2.],
- [ 3., 4.],
- [ 5., 6.]])
- """,
- )
- add_docstr_all(
- "uniform_",
- r"""
- uniform_(from=0, to=1, *, generator=None) -> Tensor
- Fills :attr:`self` tensor with numbers sampled from the continuous uniform
- distribution:
- .. math::
- f(x) = \dfrac{1}{\text{to} - \text{from}}
- """,
- )
- add_docstr_all(
- "unsqueeze",
- r"""
- unsqueeze(dim) -> Tensor
- See :func:`torch.unsqueeze`
- """,
- )
- add_docstr_all(
- "unsqueeze_",
- r"""
- unsqueeze_(dim) -> Tensor
- In-place version of :meth:`~Tensor.unsqueeze`
- """,
- )
- add_docstr_all(
- "var",
- r"""
- var(dim=None, *, correction=1, keepdim=False) -> Tensor
- See :func:`torch.var`
- """,
- )
- add_docstr_all(
- "vdot",
- r"""
- vdot(other) -> Tensor
- See :func:`torch.vdot`
- """,
- )
- add_docstr_all(
- "view",
- r"""
- view(*shape) -> Tensor
- Returns a new tensor with the same data as the :attr:`self` tensor but of a
- different :attr:`shape`.
- The returned tensor shares the same data and must have the same number
- of elements, but may have a different size. For a tensor to be viewed, the new
- view size must be compatible with its original size and stride, i.e., each new
- view dimension must either be a subspace of an original dimension, or only span
- across original dimensions :math:`d, d+1, \dots, d+k` that satisfy the following
- contiguity-like condition that :math:`\forall i = d, \dots, d+k-1`,
- .. math::
- \text{stride}[i] = \text{stride}[i+1] \times \text{size}[i+1]
- Otherwise, it will not be possible to view :attr:`self` tensor as :attr:`shape`
- without copying it (e.g., via :meth:`contiguous`). When it is unclear whether a
- :meth:`view` can be performed, it is advisable to use :meth:`reshape`, which
- returns a view if the shapes are compatible, and copies (equivalent to calling
- :meth:`contiguous`) otherwise.
- Args:
- shape (torch.Size or int...): the desired size
- Example::
- >>> x = torch.randn(4, 4)
- >>> x.size()
- torch.Size([4, 4])
- >>> y = x.view(16)
- >>> y.size()
- torch.Size([16])
- >>> z = x.view(-1, 8) # the size -1 is inferred from other dimensions
- >>> z.size()
- torch.Size([2, 8])
- >>> a = torch.randn(1, 2, 3, 4)
- >>> a.size()
- torch.Size([1, 2, 3, 4])
- >>> b = a.transpose(1, 2) # Swaps 2nd and 3rd dimension
- >>> b.size()
- torch.Size([1, 3, 2, 4])
- >>> c = a.view(1, 3, 2, 4) # Does not change tensor layout in memory
- >>> c.size()
- torch.Size([1, 3, 2, 4])
- >>> torch.equal(b, c)
- False
- .. method:: view(dtype) -> Tensor
- :noindex:
- Returns a new tensor with the same data as the :attr:`self` tensor but of a
- different :attr:`dtype`.
- If the element size of :attr:`dtype` is different than that of ``self.dtype``,
- then the size of the last dimension of the output will be scaled
- proportionally. For instance, if :attr:`dtype` element size is twice that of
- ``self.dtype``, then each pair of elements in the last dimension of
- :attr:`self` will be combined, and the size of the last dimension of the output
- will be half that of :attr:`self`. If :attr:`dtype` element size is half that
- of ``self.dtype``, then each element in the last dimension of :attr:`self` will
- be split in two, and the size of the last dimension of the output will be
- double that of :attr:`self`. For this to be possible, the following conditions
- must be true:
- * ``self.dim()`` must be greater than 0.
- * ``self.stride(-1)`` must be 1.
- Additionally, if the element size of :attr:`dtype` is greater than that of
- ``self.dtype``, the following conditions must be true as well:
- * ``self.size(-1)`` must be divisible by the ratio between the element
- sizes of the dtypes.
- * ``self.storage_offset()`` must be divisible by the ratio between the
- element sizes of the dtypes.
- * The strides of all dimensions, except the last dimension, must be
- divisible by the ratio between the element sizes of the dtypes.
- If any of the above conditions are not met, an error is thrown.
- .. warning::
- This overload is not supported by TorchScript, and using it in a Torchscript
- program will cause undefined behavior.
- Args:
- dtype (:class:`torch.dtype`): the desired dtype
- Example::
- >>> x = torch.randn(4, 4)
- >>> x
- tensor([[ 0.9482, -0.0310, 1.4999, -0.5316],
- [-0.1520, 0.7472, 0.5617, -0.8649],
- [-2.4724, -0.0334, -0.2976, -0.8499],
- [-0.2109, 1.9913, -0.9607, -0.6123]])
- >>> x.dtype
- torch.float32
- >>> y = x.view(torch.int32)
- >>> y
- tensor([[ 1064483442, -1124191867, 1069546515, -1089989247],
- [-1105482831, 1061112040, 1057999968, -1084397505],
- [-1071760287, -1123489973, -1097310419, -1084649136],
- [-1101533110, 1073668768, -1082790149, -1088634448]],
- dtype=torch.int32)
- >>> y[0, 0] = 1000000000
- >>> x
- tensor([[ 0.0047, -0.0310, 1.4999, -0.5316],
- [-0.1520, 0.7472, 0.5617, -0.8649],
- [-2.4724, -0.0334, -0.2976, -0.8499],
- [-0.2109, 1.9913, -0.9607, -0.6123]])
- >>> x.view(torch.cfloat)
- tensor([[ 0.0047-0.0310j, 1.4999-0.5316j],
- [-0.1520+0.7472j, 0.5617-0.8649j],
- [-2.4724-0.0334j, -0.2976-0.8499j],
- [-0.2109+1.9913j, -0.9607-0.6123j]])
- >>> x.view(torch.cfloat).size()
- torch.Size([4, 2])
- >>> x.view(torch.uint8)
- tensor([[ 0, 202, 154, 59, 182, 243, 253, 188, 185, 252, 191, 63, 240, 22,
- 8, 191],
- [227, 165, 27, 190, 128, 72, 63, 63, 146, 203, 15, 63, 22, 106,
- 93, 191],
- [205, 59, 30, 192, 112, 206, 8, 189, 7, 95, 152, 190, 12, 147,
- 89, 191],
- [ 43, 246, 87, 190, 235, 226, 254, 63, 111, 240, 117, 191, 177, 191,
- 28, 191]], dtype=torch.uint8)
- >>> x.view(torch.uint8).size()
- torch.Size([4, 16])
- """,
- )
- add_docstr_all(
- "view_as",
- r"""
- view_as(other) -> Tensor
- View this tensor as the same size as :attr:`other`.
- ``self.view_as(other)`` is equivalent to ``self.view(other.size())``.
- Please see :meth:`~Tensor.view` for more information about ``view``.
- Args:
- other (:class:`torch.Tensor`): The result tensor has the same size
- as :attr:`other`.
- """,
- )
- add_docstr_all(
- "expand",
- r"""
- expand(*sizes) -> Tensor
- Returns a new view of the :attr:`self` tensor with singleton dimensions expanded
- to a larger size.
- Passing -1 as the size for a dimension means not changing the size of
- that dimension.
- Tensor can be also expanded to a larger number of dimensions, and the
- new ones will be appended at the front. For the new dimensions, the
- size cannot be set to -1.
- Expanding a tensor does not allocate new memory, but only creates a
- new view on the existing tensor where a dimension of size one is
- expanded to a larger size by setting the ``stride`` to 0. Any dimension
- of size 1 can be expanded to an arbitrary value without allocating new
- memory.
- Args:
- *sizes (torch.Size or int...): the desired expanded size
- .. warning::
- More than one element of an expanded tensor may refer to a single
- memory location. As a result, in-place operations (especially ones that
- are vectorized) may result in incorrect behavior. If you need to write
- to the tensors, please clone them first.
- Example::
- >>> x = torch.tensor([[1], [2], [3]])
- >>> x.size()
- torch.Size([3, 1])
- >>> x.expand(3, 4)
- tensor([[ 1, 1, 1, 1],
- [ 2, 2, 2, 2],
- [ 3, 3, 3, 3]])
- >>> x.expand(-1, 4) # -1 means not changing the size of that dimension
- tensor([[ 1, 1, 1, 1],
- [ 2, 2, 2, 2],
- [ 3, 3, 3, 3]])
- """,
- )
- add_docstr_all(
- "expand_as",
- r"""
- expand_as(other) -> Tensor
- Expand this tensor to the same size as :attr:`other`.
- ``self.expand_as(other)`` is equivalent to ``self.expand(other.size())``.
- Please see :meth:`~Tensor.expand` for more information about ``expand``.
- Args:
- other (:class:`torch.Tensor`): The result tensor has the same size
- as :attr:`other`.
- """,
- )
- add_docstr_all(
- "sum_to_size",
- r"""
- sum_to_size(*size) -> Tensor
- Sum ``this`` tensor to :attr:`size`.
- :attr:`size` must be broadcastable to ``this`` tensor size.
- Args:
- size (int...): a sequence of integers defining the shape of the output tensor.
- """,
- )
- add_docstr_all(
- "zero_",
- r"""
- zero_() -> Tensor
- Fills :attr:`self` tensor with zeros.
- """,
- )
- add_docstr_all(
- "matmul",
- r"""
- matmul(tensor2) -> Tensor
- See :func:`torch.matmul`
- """,
- )
- add_docstr_all(
- "chunk",
- r"""
- chunk(chunks, dim=0) -> List of Tensors
- See :func:`torch.chunk`
- """,
- )
- add_docstr_all(
- "unsafe_chunk",
- r"""
- unsafe_chunk(chunks, dim=0) -> List of Tensors
- See :func:`torch.unsafe_chunk`
- """,
- )
- add_docstr_all(
- "unsafe_split",
- r"""
- unsafe_split(split_size, dim=0) -> List of Tensors
- See :func:`torch.unsafe_split`
- """,
- )
- add_docstr_all(
- "tensor_split",
- r"""
- tensor_split(indices_or_sections, dim=0) -> List of Tensors
- See :func:`torch.tensor_split`
- """,
- )
- add_docstr_all(
- "hsplit",
- r"""
- hsplit(split_size_or_sections) -> List of Tensors
- See :func:`torch.hsplit`
- """,
- )
- add_docstr_all(
- "vsplit",
- r"""
- vsplit(split_size_or_sections) -> List of Tensors
- See :func:`torch.vsplit`
- """,
- )
- add_docstr_all(
- "dsplit",
- r"""
- dsplit(split_size_or_sections) -> List of Tensors
- See :func:`torch.dsplit`
- """,
- )
- add_docstr_all(
- "stft",
- r"""
- stft(frame_length, hop, fft_size=None, return_onesided=True, window=None,
- pad_end=0, align_to_window=None) -> Tensor
- See :func:`torch.stft`
- """,
- )
- add_docstr_all(
- "istft",
- r"""
- istft(n_fft, hop_length=None, win_length=None, window=None,
- center=True, normalized=False, onesided=True, length=None) -> Tensor
- See :func:`torch.istft`
- """,
- )
- add_docstr_all(
- "det",
- r"""
- det() -> Tensor
- See :func:`torch.det`
- """,
- )
- add_docstr_all(
- "where",
- r"""
- where(condition, y) -> Tensor
- ``self.where(condition, y)`` is equivalent to ``torch.where(condition, self, y)``.
- See :func:`torch.where`
- """,
- )
- add_docstr_all(
- "logdet",
- r"""
- logdet() -> Tensor
- See :func:`torch.logdet`
- """,
- )
- add_docstr_all(
- "slogdet",
- r"""
- slogdet() -> (Tensor, Tensor)
- See :func:`torch.slogdet`
- """,
- )
- add_docstr_all(
- "unbind",
- r"""
- unbind(dim=0) -> seq
- See :func:`torch.unbind`
- """,
- )
- add_docstr_all(
- "pin_memory",
- r"""
- pin_memory() -> Tensor
- Copies the tensor to pinned memory, if it's not already pinned.
- By default, the device pinned memory on will be the current :ref:`accelerator<accelerators>`.
- """,
- )
- add_docstr_all(
- "pinverse",
- r"""
- pinverse() -> Tensor
- See :func:`torch.pinverse`
- """,
- )
- add_docstr_all(
- "index_add",
- r"""
- index_add(dim, index, source, *, alpha=1) -> Tensor
- Out-of-place version of :meth:`torch.Tensor.index_add_`.
- """,
- )
- add_docstr_all(
- "index_copy",
- r"""
- index_copy(dim, index, tensor2) -> Tensor
- Out-of-place version of :meth:`torch.Tensor.index_copy_`.
- """,
- )
- add_docstr_all(
- "index_fill",
- r"""
- index_fill(dim, index, value) -> Tensor
- Out-of-place version of :meth:`torch.Tensor.index_fill_`.
- """,
- )
- add_docstr_all(
- "scatter",
- r"""
- scatter(dim, index, src) -> Tensor
- Out-of-place version of :meth:`torch.Tensor.scatter_`
- """,
- )
- add_docstr_all(
- "scatter_add",
- r"""
- scatter_add(dim, index, src) -> Tensor
- Out-of-place version of :meth:`torch.Tensor.scatter_add_`
- """,
- )
- add_docstr_all(
- "scatter_reduce",
- r"""
- scatter_reduce(dim, index, src, reduce, *, include_self=True) -> Tensor
- Out-of-place version of :meth:`torch.Tensor.scatter_reduce_`
- """,
- )
- add_docstr_all(
- "masked_scatter",
- r"""
- masked_scatter(mask, tensor) -> Tensor
- Out-of-place version of :meth:`torch.Tensor.masked_scatter_`
- .. note::
- The inputs :attr:`self` and :attr:`mask`
- :ref:`broadcast <broadcasting-semantics>`.
- Example:
- >>> self = torch.tensor([0, 0, 0, 0, 0])
- >>> mask = torch.tensor(
- ... [[0, 0, 0, 1, 1], [1, 1, 0, 1, 1]],
- ... dtype=torch.bool,
- ... )
- >>> source = torch.tensor([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]])
- >>> self.masked_scatter(mask, source)
- tensor([[0, 0, 0, 0, 1],
- [2, 3, 0, 4, 5]])
- """,
- )
- add_docstr_all(
- "xlogy",
- r"""
- xlogy(other) -> Tensor
- See :func:`torch.xlogy`
- """,
- )
- add_docstr_all(
- "xlogy_",
- r"""
- xlogy_(other) -> Tensor
- In-place version of :meth:`~Tensor.xlogy`
- """,
- )
- add_docstr_all(
- "masked_fill",
- r"""
- masked_fill(mask, value) -> Tensor
- Out-of-place version of :meth:`torch.Tensor.masked_fill_`
- """,
- )
- add_docstr_all(
- "grad",
- r"""
- This attribute is ``None`` by default and becomes a Tensor the first time a call to
- :func:`backward` computes gradients for ``self``.
- The attribute will then contain the gradients computed and future calls to
- :func:`backward` will accumulate (add) gradients into it.
- """,
- )
- add_docstr_all(
- "grad_dtype",
- r"""
- The allowed dtype of :attr:``grad`` for this tensor.
- :attr:``grad_dtype`` can be set to a specific dtype or ``None``. By default,
- ``t.grad_dtype == t.dtype``. When not None, the autograd engine casts
- incoming gradients to this dtype. This attribute is only accessible and
- settable for leaf tensors.
- .. warning::
- Use with caution. Diverging the dtypes of a tensor and its gradient may
- break downstream systems that assume they match.
- Example::
- >>> x = torch.tensor([1.0, 2.0], requires_grad=True)
- >>> x.grad_dtype
- torch.float32
- >>> x.grad_dtype = torch.float16
- >>> x.grad_dtype
- torch.float16
- >>> # Allow any gradient dtype
- >>> x.grad_dtype = None
- >>> x.grad_dtype
- """,
- )
- add_docstr_all(
- "retain_grad",
- r"""
- retain_grad() -> None
- Enables this Tensor to have their :attr:`grad` populated during
- :func:`backward`. This is a no-op for leaf tensors.
- """,
- )
- add_docstr_all(
- "retains_grad",
- r"""
- Is ``True`` if this Tensor is non-leaf and its :attr:`grad` is enabled to be
- populated during :func:`backward`, ``False`` otherwise.
- """,
- )
- add_docstr_all(
- "requires_grad",
- r"""
- Is ``True`` if gradients need to be computed for this Tensor, ``False`` otherwise.
- .. note::
- The fact that gradients need to be computed for a Tensor do not mean that the :attr:`grad`
- attribute will be populated, see :attr:`is_leaf` for more details.
- """,
- )
- add_docstr_all(
- "is_leaf",
- r"""
- All Tensors that have :attr:`requires_grad` which is ``False`` will be leaf Tensors by convention.
- For Tensors that have :attr:`requires_grad` which is ``True``, they will be leaf Tensors if they were
- created by the user. This means that they are not the result of an operation and so
- :attr:`grad_fn` is None.
- Only leaf Tensors will have their :attr:`grad` populated during a call to :func:`backward`.
- To get :attr:`grad` populated for non-leaf Tensors, you can use :func:`retain_grad`.
- Example::
- >>> a = torch.rand(10, requires_grad=True)
- >>> a.is_leaf
- True
- >>> b = torch.rand(10, requires_grad=True).cuda()
- >>> b.is_leaf
- False
- # b was created by the operation that cast a cpu Tensor into a cuda Tensor
- >>> c = torch.rand(10, requires_grad=True) + 2
- >>> c.is_leaf
- False
- # c was created by the addition operation
- >>> d = torch.rand(10).cuda()
- >>> d.is_leaf
- True
- # d does not require gradients and so has no operation creating it (that is tracked by the autograd engine)
- >>> e = torch.rand(10).cuda().requires_grad_()
- >>> e.is_leaf
- True
- # e requires gradients and has no operations creating it
- >>> f = torch.rand(10, requires_grad=True, device="cuda")
- >>> f.is_leaf
- True
- # f requires grad, has no operation creating it
- """,
- )
- add_docstr_all(
- "names",
- r"""
- Stores names for each of this tensor's dimensions.
- ``names[idx]`` corresponds to the name of tensor dimension ``idx``.
- Names are either a string if the dimension is named or ``None`` if the
- dimension is unnamed.
- Dimension names may contain characters or underscore. Furthermore, a dimension
- name must be a valid Python variable name (i.e., does not start with underscore).
- Tensors may not have two named dimensions with the same name.
- .. warning::
- The named tensor API is experimental and subject to change.
- """,
- )
- add_docstr_all(
- "is_cuda",
- r"""
- Is ``True`` if the Tensor is stored on the GPU, ``False`` otherwise.
- """,
- )
- add_docstr_all(
- "is_cpu",
- r"""
- Is ``True`` if the Tensor is stored on the CPU, ``False`` otherwise.
- """,
- )
- add_docstr_all(
- "is_xla",
- r"""
- Is ``True`` if the Tensor is stored on an XLA device, ``False`` otherwise.
- """,
- )
- add_docstr_all(
- "is_ipu",
- r"""
- Is ``True`` if the Tensor is stored on the IPU, ``False`` otherwise.
- """,
- )
- add_docstr_all(
- "is_xpu",
- r"""
- Is ``True`` if the Tensor is stored on the XPU, ``False`` otherwise.
- """,
- )
- add_docstr_all(
- "is_quantized",
- r"""
- Is ``True`` if the Tensor is quantized, ``False`` otherwise.
- """,
- )
- add_docstr_all(
- "is_meta",
- r"""
- Is ``True`` if the Tensor is a meta tensor, ``False`` otherwise. Meta tensors
- are like normal tensors, but they carry no data.
- """,
- )
- add_docstr_all(
- "is_mps",
- r"""
- Is ``True`` if the Tensor is stored on the MPS device, ``False`` otherwise.
- """,
- )
- add_docstr_all(
- "is_sparse",
- r"""
- Is ``True`` if the Tensor uses sparse COO storage layout, ``False`` otherwise.
- """,
- )
- add_docstr_all(
- "is_sparse_csr",
- r"""
- Is ``True`` if the Tensor uses sparse CSR storage layout, ``False`` otherwise.
- """,
- )
- add_docstr_all(
- "device",
- r"""
- Is the :class:`torch.device` where this Tensor is.
- """,
- )
- add_docstr_all(
- "ndim",
- r"""
- Alias for :meth:`~Tensor.dim()`
- """,
- )
- add_docstr_all(
- "itemsize",
- r"""
- Alias for :meth:`~Tensor.element_size()`
- """,
- )
- add_docstr_all(
- "nbytes",
- r"""
- Returns the number of bytes consumed by the "view" of elements of the Tensor
- if the Tensor does not use sparse storage layout.
- Defined to be :meth:`~Tensor.numel()` * :meth:`~Tensor.element_size()`
- """,
- )
- add_docstr_all(
- "T",
- r"""
- Returns a view of this tensor with its dimensions reversed.
- If ``n`` is the number of dimensions in ``x``,
- ``x.T`` is equivalent to ``x.permute(n-1, n-2, ..., 0)``.
- .. warning::
- The use of :func:`Tensor.T` on tensors of dimension other than 2 to reverse their shape
- is deprecated and it will throw an error in a future release. Consider :attr:`~.Tensor.mT`
- to transpose batches of matrices or `x.permute(*torch.arange(x.ndim - 1, -1, -1))` to reverse
- the dimensions of a tensor.
- """,
- )
- add_docstr_all(
- "H",
- r"""
- Returns a view of a matrix (2-D tensor) conjugated and transposed.
- ``x.H`` is equivalent to ``x.transpose(0, 1).conj()`` for complex matrices and
- ``x.transpose(0, 1)`` for real matrices.
- .. seealso::
- :attr:`~.Tensor.mH`: An attribute that also works on batches of matrices.
- """,
- )
- add_docstr_all(
- "mT",
- r"""
- Returns a view of this tensor with the last two dimensions transposed.
- ``x.mT`` is equivalent to ``x.transpose(-2, -1)``.
- """,
- )
- add_docstr_all(
- "mH",
- r"""
- Accessing this property is equivalent to calling :func:`adjoint`.
- """,
- )
- add_docstr_all(
- "adjoint",
- r"""
- adjoint() -> Tensor
- Alias for :func:`adjoint`
- """,
- )
- add_docstr_all(
- "real",
- r"""
- Returns a new tensor containing real values of the :attr:`self` tensor for a complex-valued input tensor.
- The returned tensor and :attr:`self` share the same underlying storage.
- Returns :attr:`self` if :attr:`self` is a real-valued tensor tensor.
- Example::
- >>> x=torch.randn(4, dtype=torch.cfloat)
- >>> x
- tensor([(0.3100+0.3553j), (-0.5445-0.7896j), (-1.6492-0.0633j), (-0.0638-0.8119j)])
- >>> x.real
- tensor([ 0.3100, -0.5445, -1.6492, -0.0638])
- """,
- )
- add_docstr_all(
- "imag",
- r"""
- Returns a new tensor containing imaginary values of the :attr:`self` tensor.
- The returned tensor and :attr:`self` share the same underlying storage.
- .. warning::
- :func:`imag` is only supported for tensors with complex dtypes.
- Example::
- >>> x=torch.randn(4, dtype=torch.cfloat)
- >>> x
- tensor([(0.3100+0.3553j), (-0.5445-0.7896j), (-1.6492-0.0633j), (-0.0638-0.8119j)])
- >>> x.imag
- tensor([ 0.3553, -0.7896, -0.0633, -0.8119])
- """,
- )
- add_docstr_all(
- "as_subclass",
- r"""
- as_subclass(cls) -> Tensor
- Makes a ``cls`` instance with the same data pointer as ``self``. Changes
- in the output mirror changes in ``self``, and the output stays attached
- to the autograd graph. ``cls`` must be a subclass of ``Tensor``.
- """,
- )
- add_docstr_all(
- "crow_indices",
- r"""
- crow_indices() -> IntTensor
- Returns the tensor containing the compressed row indices of the :attr:`self`
- tensor when :attr:`self` is a sparse CSR tensor of layout ``sparse_csr``.
- The ``crow_indices`` tensor is strictly of shape (:attr:`self`.size(0) + 1)
- and of type ``int32`` or ``int64``. When using MKL routines such as sparse
- matrix multiplication, it is necessary to use ``int32`` indexing in order
- to avoid downcasting and potentially losing information.
- Example::
- >>> csr = torch.eye(5,5).to_sparse_csr()
- >>> csr.crow_indices()
- tensor([0, 1, 2, 3, 4, 5], dtype=torch.int32)
- """,
- )
- add_docstr_all(
- "col_indices",
- r"""
- col_indices() -> IntTensor
- Returns the tensor containing the column indices of the :attr:`self`
- tensor when :attr:`self` is a sparse CSR tensor of layout ``sparse_csr``.
- The ``col_indices`` tensor is strictly of shape (:attr:`self`.nnz())
- and of type ``int32`` or ``int64``. When using MKL routines such as sparse
- matrix multiplication, it is necessary to use ``int32`` indexing in order
- to avoid downcasting and potentially losing information.
- Example::
- >>> csr = torch.eye(5,5).to_sparse_csr()
- >>> csr.col_indices()
- tensor([0, 1, 2, 3, 4], dtype=torch.int32)
- """,
- )
- add_docstr_all(
- "to_padded_tensor",
- r"""
- to_padded_tensor(padding, output_size=None) -> Tensor
- See :func:`to_padded_tensor`
- """,
- )
|