| CARVIEW |
??2??@PyTorch?̃e???\?????f?[?^?^?̃`?[?g?V?[?g?FPyTorch????
PyTorch?̃f?[?^??p?????[?^?[?Ȃǂ́A?Ǝ??́u?e???\???v?`???Ŏ?舵???B?e???\????NumPy???C?N?Ɏ?舵????̂œ???͂Ȃ??B?e???\???̊?{?I?ȑ?????@?ƁA?e???\?????̒l?̃f?[?^?^?ɂ??āA???₭???e???m?F?ł???`?[?g?V?[?g?`???ŏЉ??B
???̋L???͉??????ł??B????o?^?i?????j????ƑS?Ă????????????܂??B
?@?O???́APyTorch???j?ƂȂ镔???̐??????s?????B????́APyTorch????b?????Ƃ?????u?e???\???ƃf?[?^?^?v???`?[?g?V?[?g?`???Ŋm?F????B
?@?Ȃ??A?{?A?ڂ̑?1??`??3??܂ł͑??????̂ƂȂ??Ă???B
- ??1??F ????Ȃ??I PyTorch?Ńj???[?????l?b?g???[?N?̊?{
- ??2??F PyTorch?̃e???\?????f?[?^?^?̃`?[?g?V?[?g?i????j
- ??3??F PyTorch?ɂ??f?B?[?v???[?j???O?????菇?̊?{
?@?S3??̑?܂??ȗ???͈ȉ??̒ʂ?ł???B
?@ ?i1?j?j???[?????̃??f????`
?@ ?i2?j?t?H???[?h?v???p?Q?[?V?????i???`?d?j
?@ ?i3?j?o?b?N?v???p?Q?[?V?????i?t?`?d?j?Ǝ????????iAutograd?j
?@ ?i4?jPyTorch?̊?b?F ?e???\???ƃf?[?^?^
?@ ?i5?j?f?[?^?Z?b?g?ƃf?[?^???[?_?[?iDataLoader?j
?@ ?i6?j?f?B?[?v?j???[?????l?b?g?̃??f????`
?@ ?i7?j?w?K?^?œK???i?I?v?e?B?}?C?U?j
?@ ?i8?j?]???^???x????
?@???̂????A?i1?j?`?i3?j?͑O??????ς݂ł???B????́A?i4?j?????????B????ł͂????????????ɓ??낤?B???r????}?A?R?[?h???X?g?̔ԍ??͑O??̑????ԍ??Ƃ??Ă???i??1??`??3??́A?藣?????A?ЂƂ܂Ƃ܂?̋L???Ƃ??ēǂ?łق??????ߘA?????????????Ă???j?B
?i4?jPyTorch?̊?b?F ?e???\???ƃf?[?^?^
?@PyTorch?̃e???\???ɂ??ẮA?O??ł????ɉ??x???o?ꂵ?Ă???A?Ⴆ???X?g1-3?ł?torch.tensor([0.8])?Ƃ????R?[?h?Ńe???\???itorch.Tensor?l?j???쐬?????BPyTorch?Ńf?[?^?␔?l???????ɂ́A???̃e???\???`???ɂ???K?v??????B
?@?Ƃ͂????Ă??A???̗?ŕ?????悤?ɁAPython?̐??l??X?g?l??torch.Tensor?l?ɕϊ??????萔?l?v?Z?????肷??̂́A?i???w?v?Z???C?u?????uNumPy?v?Ɏg?????????????Ă???̂??????āj????Ȃ??B?܂??A???L?????N??ɂ???????`???[?g???A???̓??e???Ղ????̂ŁA????????Ă܂????l?͂قƂ?ǂ??Ȃ??Ǝv????B
- ?????`???[?g???A???F ?uWhat is PyTorch? — PyTorch Tutorials 1.4.0 documentation?v
- API?h?L???????g?F ?utorch — PyTorch master documentation?v
?@????Ă????ł́A?ڂ????????͌????`???[?g???A???ɔC???A??{?I?ɓ??????e???܂Ƃ߂??u?e???\?????쐬?^?ϊ??????{?I?ȃR?[?h?̃`?[?g?V?[?g?v???????????ɂ???B?|?C???g?Ȃǂ́A?R?[?h?̃R?????g?Ƃ??ċL?ڂ????B
?@?`?[?g?V?[?g?̓??e?ŕ?????Ȃ??Ƃ??낪????A??L?̌????`???[?g???A????API?h?L???????g?̐??????Q?Ƃ??Ăق????i???p??̃y?[?W?ł͂??邪?A??1??̖`???ł??Љ???悤??Chrome?́m???{??ɖ|??n?@?\???g???Ώ\???ɓ??{??œǂ߂邾?낤?j?B
?`?[?g?V?[?g?uPyTorch?̃f?[?^?^?v
?@?܂??́A?e???\???̒??Ɋ܂߂鐔?l?ɂ??ďЉ?悤?BPyTorch?ɂ́A?iNumPy?̂悤?Ɂj?Ǝ??̃f?[?^?^?itorch.dtypes?j??????i?\4-1?j?B
| ?f?[?^?^ | dtype?????ւ̋L?q | Python?^NumPy?inp?j?̑Ή??f?[?^?^ |
|---|---|---|
| Boolean?i?^?U?l?j | torch.bool | bool ?^ np.bool |
| 8bit?̕????Ȃ????? | torch.uint8 | int ?^ np.uint8 |
| 8bit?̕????t?????? | torch.int8 | int ?^ np.int8 |
| 16bit?̕????t?????? | torch.int16 ?^ torch.short | int ?^ np.uint16 |
| 32bit?̕????t?????? | torch.int32 ?^ torch.int | int ?^ np.uint32 |
| 64bit?̕????t?????? | torch.int64 ?^ torch.long | int ?^ np.uint64 |
| 16bit?̕????????_ | torch.float16 ?^ torch.half | float ?^ np.float16 |
| 32bit?̕????????_ | torch.float32 ?^ torch.float | float ?^ np.float32 |
| 64bit?̕????????_ | torch.float64 ?^ torch.double | float ?^ np.float64 |
| ?\4-1?@PyTorch?̃f?[?^?^ | ||
?@???????A?????ł????f?[?^?^?Ƃ́u????e???\???Ɋ܂܂??S?v?f?ɋ??ʂ̓???I?ȃf?[?^?^?v?ł??邱?Ƃɒ??ӂ??悤?B?Ⴆ??torch.float?̏ꍇ?́A?e???\?????̑S?v?f?̐??l???u32bit?̕????????_?v?Ƃ??Ĉ?????̂Œ??ӂ??Ăق????B
?@??ނ͖L?x?????A??{?I??32bit??torch.float??torch.int?????g??Ȃ??B
?@???ӂ??K?v?Ȃ̂??ANumPy?̕????????_?̐??l???i???ɂ???Ắj?f?t?H???g??64bit?ɂȂ??Ă???Ƃ????_???B???̂??߁ANumPy?̑??????z??l????PyTorch?̃e???\???ɕϊ??????ۂɁA?e???\???̒??̐??l??torch.double?^?ɂȂ??Ă??܂??BPyTorch?̃N???X???ł?torch.float?^???O??ƂȂ??Ă??郁?\?b?h?Ȃǂ????????邽?߁A???̂܂܂ł̓G???[?ɂȂ??Ă??܂??\?????????B????āANumPy????ϊ??????e???\???́A????float()???\?b?h???Ăяo???ăf?[?^?^?̕ϊ????s???K?v??????B???̕??@?ɂ??ẮA??q?́w???X?g4-7?@?`?[?g?V?[?g?u?e???\???̃f?[?^?^?̕ϊ??v?x?Ŏ????Ă???B
?`?[?g?V?[?g?u?e???\???̐V?K?쐬?v
?@?ȉ??ł́A?V???v???Ƀe???\???̎g?????????????????߁Aprint(x)?Ȃǂ̏o?͂Ɋւ???R?[?h?͋ɗ́A?ȗ??????B?R?[?h?????s???ďo?͂??m?F???????ꍇ?́A?Ⴆ??x = torch.empty(2, 3)?Ƃ????R?[?h?̌??print(x)??NjL???Ăق????B?܂??Ax.size()?Ƃ????R?[?h?́Aprint(x.size())?̂悤??print????K?X?A?????ŕ???Ăق????B
?@?e???\???̐V?K?쐬?́A??1??Ŋ??ɐ????????u???l?ڎw?肷????@?v?̑??Aempty()?^rand()?^zeros()?^ones()?Ƃ????????\?b?h?ł??s????B?܂??A?????̃e???\???Ɠ????f?[?^?^??T?C?Y?̂??̂?V?K?쐬??????@??????Ă???B
import torch
import numpy as np
# ?e???\???̐V?K?쐬
x = torch.empty(2, 3) # 2?s?~3??̃e???\???i??????????ԁj??
x = torch.rand(2, 3) # 2?s?~3??̃e???\???i?????_???ɏ??????j??
x = torch.zeros(2, 3, dtype=torch.float) # 2?s?~3??̃e???\???i0?ŏ??????Atorch.float?^?j??
x = torch.ones(2, 3, dtype=torch.float) # 2?s?~3??̃e???\???i1?ŏ??????Atorch.float?^?j??
x = torch.tensor([[0.0, 0.1, 0.2],
[1.0, 1.1, 1.2]]) # 1?s?~2??̃e???\????Python???X?g?l????쐬
# ?????̃e???\?????g?????V?K?쐬
# ?unew_*()?v?p?^?[??
y = x.new_ones(2, 3) # 2?s?~3??̃e???\???i1?ŏ??????A?????̃e???\???Ɓu?????f?[?^?^?v?j??
# ?u*_like()?v?p?^?[?? # ?????̃e???\???Ɓu?????T?C?Y?v?̃e???\???i1?ŏ??????Atorch.int?^?j??
y = torch.ones_like(x, dtype=torch.int)
?`?[?g?V?[?g?u?e???\???̃T?C?Y?擾?ƃT?C?Y?ύX?v
?@?e???\???̃T?C?Y?擾??e???\???̎??????擾?́ANumPy???ɍs????̂ŁANumPy???[?U?[?ɂƂ??Ă͊y?ł???B?e???\???̃T?C?Y?ύX???ȒP?ɍs????B
# ?e???\???T?C?Y?̎擾
x.size() # ?utorch.Size([2, 3])?v?̂悤?ɁA2?s3??Əo?͂????
x.shape # NumPy???̋L?q???\?B?o?͂͏?Ɠ???
len(x) # ?s???i???f?[?^???j???擾????ۂ??ANumPy???ɋL?q???邱?Ƃ??\
x.ndim # ?e???\???̎????????擾????ۂ??ANumPy???ɋL?q???\
# ?e???\???̃T?C?Y?ύX?^?`??ύX
z = x.view(3, 2) # 3?s2??ɕύX
?`?[?g?V?[?g?u?e???\???̉??Z?^?v?Z?v
?@???w?v?Z???A+?Ȃǂ̉??Z?q???g?????l?????Z?̑??Aadd()?i?????Z?j??pow()?i?ݏ?j??mean()?i???ρj?Ƃ????????\?b?h???p?ӂ???Ă???B???\?b?h???͒????I?Ȑ??w?p??Ȃ̂ŁA???ɖ??????Ƃ͂Ȃ????낤?B???͂??ĖړI?̌v?Z???\?b?h?????݂??Ȃ???A?uAPI?h?L???????g?F Math operations?v??T???Ƃ悢?B
# ?e???\???̌v?Z????
x + y # ???Z?q???g?????@
torch.add(x, y) # ?????g?????@
torch.add(x, y, out=x) # out?p?????[?^?[?ŏo?͐?̕ϐ????w??\
x.add_(y) # ?u*_()?v?p?^?[???Bx??u???????ďo?͂????i??̍s?Ɠ????????j
?@PyTorch?̃e???\???ł́A???\?b?h???̍Ō?ɃA???_?[?X?R?A?i_?j??????ꍇ?i?Ⴆ??add_()?j?A?u?e???\???????̒u???iin-place changes?j???N???邱?Ɓv???Ӗ?????B????A?A???_?[?X?R?A?i_?j???Ȃ??ʏ?̌v?Z?̏ꍇ?i?Ⴆ??add()?j?́A?v?Z???̃e???\???????͕ύX???ꂸ?ɁA?߂?l?Ƃ??āu?V???ȃe???\???v???擾?ł???d?l???B
?`?[?g?V?[?g?u?e???\???̃C???f?N?V???O?^?X???C?V???O?v
?@?e???\???ɃC???f?b?N?X?w??ŃA?N?Z?X??????A?X???C?X?@?\?Ńf?[?^?𒊏o?????肷????@?́APython???X?g??NumPy???????z??Ɠ????ł???B
# ?C???f?N?V???O??X???C?V???O?iNumPy?̂悤?ȓY???????g?p?\?j
print(x) # ???́A2?s3??̃e???\??
x[0, 1] # 1?s2??ځi??0?X?^?[?g?j???擾
x[:2, 1:] # ?擪?`2?s?i??0?s?ڂ?1?s?ځj?~2??`?????i??2??ڂ?3??ځj??2?s2???o?????
?`?[?g?V?[?g?u?e???\??????Python???l?ւ̕ϊ??v
?@?u?e???\???̗v?f?l??Python?̐??l?ɕϊ????????v?Ƃ?????ʂ͔??ɑ????̂ŁA???̋@?\?͂悭?g?????ƂɂȂ?B????ɂ́A?i???܂蒼???I?ł͂Ȃ????j?e???\????item()???\?b?h???Ăяo???????ł???B
# ?e???\????1?̗v?f?l???APython?̐??l?ɕϊ?
x[0, 1].item() # 1?s2??ځi??0?X?^?[?g?j?̗v?f?l??Python?̐??l?Ŏ擾
?`?[?g?V?[?g?uPyTorch?e???\?? ???? NumPy???????z??l?A?̕ϊ????A?g?v
?@?uPyTorch?̃e???\????NumPy?̑??????z??l?𑊌݂ɕϊ????????v?Ƃ????j?[?Y?͂???ɑ????B??????ȒP?ŁA?i?????I?ȁj???e???\????.numpy()???\?b?h??torch.from_numpy(?????????z??l??)???Ăяo?????????B
# PyTorch?e???\?????ANumPy???????z??ɕϊ?
b = x.numpy() # ?unumpy()?v???Ăяo???????B?ȉ??͒??ӓ_?i???????ʒu?̋??L?j
# ??PyTorch?e???\?????̒l??ς???ƁANumPy???????z??l?ub?v???ω?????i?g???b?N?????j
print ('PyTorch?v?Z??NumPy???f?F')
print(b); x.add_(y); print(b) # PyTorch???̌v?Z??NumPy???ɔ??f
print ('NumPy?v?Z??PyTorch???f?F')
print(x); np.add(b, b, out=b); print(x) # NumPy???̌v?Z??PyTorch???ɔ??f
# -----------------------------------------
# NumPy???????z????APyTorch?e???\???ɕϊ?
c = np.ones((2, 3), dtype=np.float64) # 2?s3??̑??????z??l?i1?ŏ??????j??
d = torch.from_numpy(c) # ?utorch.from_numpy()?v???Ăяo??????
# ??NumPy???????z??l??ς???ƁAPyTorch?e???\???ud?v???ω?????i?g???b?N?????j
print ('NumPy?v?Z??PyTorch???f?F')
print(d); np.add(c, c, out=c); print(d) # NumPy???̌v?Z??PyTorch???ɔ??f
print ('PyTorch?v?Z??NumPy???f?F')
print(c); d.add_(y); print(c) # PyTorch???̌v?Z??NumPy???ɔ??f
?@?Ȃ????ӓ_?Ƃ??āi?????b?g?Ƃ??????邪?j?A????????ĕϊ????ꂽ?e???\???^???????z??͓??????????ʒu?????L???邽?߁A?Е??̐??l??ύX????A?????Е??ɑ????ɔ??f???邱?ƂɂȂ?B
?`?[?g?V?[?g?u?e???\???̃f?[?^?^?̕ϊ??v
?@??قǂ́u?f?[?^?^?v?Ő????????悤?ɁANumPy?̑??????z??PyTorch?̃e???\???ɕϊ??????ꍇ?Afloat()???\?b?h???Ăяo???āutorch.float64?v????utorch.float32?v?Ƀf?[?^?^??ϊ????邱?Ƃ??K?v?ȏ?ʂ͑????B
# ?f?[?^?^?̕ϊ??i???ϊ???̃e???\???ɂ́ANumPy?̌v?Z?͔??f????Ȃ??j
e = d.float() # ?utorch.float64?v????utorch.float32?v
?@?Ȃ??ANumPy????PyTorch?e???\???ւ̕ϊ??ł́A?f?[?^?^?͊?{?I?Ɏ??̂悤?ɕϊ??????B
- ?unumpy.float64 ?? torch.float64?^torch.double?v
- ?unumpy.float32 ?? torch.float32?^torch.float?v
?`?[?g?V?[?g?u?e???\?????Z?ł?GPU???p?v
?@PyTorch?ł́A?e???\???̌v?Z??GPU?iCUDA?f?o?C?X???j????y?ɓK?p?ł???B
# NVIDIA??GPU?ł???uCUDA?v?iGPU?j?f?o?C?X???????p?\?ȏꍇ?A
# GPU???g???ăe???\???̌v?Z???s?????Ƃ??ł???
if torch.cuda.is_available(): # CUDA?iGPU?j?????p?\?ȏꍇ
print('CUDA?iGPU?j?????p?ł????')
print(f'CUDA?f?o?C?X???F {torch.cuda.device_count()}')
print(f'???݂?CUDA?f?o?C?X?ԍ??F {torch.cuda.current_device()}') # ??0?X?^?[?g
print(f'1?Ԗڂ?CUDA?f?o?C?X???F {torch.cuda.get_device_name(0)}') # ??uTesla T4?v
device = torch.device("cuda") # ?f?t?H???g??CUDA?f?o?C?X?I?u?W?F?N?g???擾
device0 = torch.device("cuda:0") # 1?Ԗځi??0?X?^?[?g?j??CUDA?f?o?C?X???擾
# ?e???\???v?Z?ł?GPU?̎g?????͎??3?F
g = torch.ones(2, 3, device=device) # ?i1?j?e???\?????????̃p?????[?^?[?w??
g = x.to(device) # ?i2?j?????e???\???̃f?o?C?X?ύX
g = x.cuda(device) # ?i3?j?????e???\???́uCUDA?iGPU?j?v???p
f = x.cpu() # ?i3'?j?????e???\???́uCPU?v???p
# ???i2?j?̎g?????ŁAGPU?́u.to("cuda")?v?ACPU?́u.to("cpu")?v?Ə????Ă??悢
g = x.to("cuda")
f = x.to("cpu")
# ???i3?j?̈????͏ȗ????邱?Ƃ??\
g = x.cuda()
# ?utorch.nn.Module?v?I?u?W?F?N?g?imodel?j?S?̂ł?GPU?^CPU?̐?ւ?
model.cuda() # ???f???̑S?p?????[?^?[?ƃo?b?t?@?[???uCUDA?iGPU?j?v?Ɉڍs????
model.cpu() # ???f???̑S?p?????[?^?[?ƃo?b?t?@?[???uCPU?v?Ɉڍs????
else:
print('CUDA?iGPU?j?????p?ł??Ȃ???')
?@?ȏ?ŁAPyTorch?̊?b?????u?e???\???ƃf?[?^?^?v?̊m?F???I??????B?????́APyTorch?ɂ???{?I?Ȏ??????@?ƈ?A?̗???????????B???????炪?{?A?ڂ̃??C???ł???B
?uPyTorch?????v
Copyright© Digital Advantage Corp. All Rights Reserved.
?A?C?e?B???f?B?A????̂??m?点
??IT eBook
?ҏW??????̂??m?点
RSS?ɂ???
?A?C?e?B???f?B?AID?ɂ???
???[???}?K?W???o?^
??IT?̃??[???}?K?W???́A ???????A???ׂĖ????ł??B???Ѓ??[???}?K?W???????w?ǂ????????B
ITmedia?̓A?C?e?B???f?B?A??????Ђ̓o?^???W?ł??B
???f?B?A?ꗗ | ????SNS | ?L???ē? | ???₢???킹 | ?v???C?o?V?[?|???V?[ | RSS | ?^?c??? | ?̗p??? | ??????







