[PYTHON] Appropriate Japanese translation of pytorch tensor_tutorial

%matplotlib inline

WHAT IS PYTORCH?

It’s a Python-based scientific computing package targeted at two sets of audiences:

Tensors Tensors are similar to Numpy's ndarrays, with the addtion being that Tensors can also be used on GPU to accelerate computing.

What is PyTorch?

Pytorch is a Python-based product developed for users with the following objectives: It is a scientific calculation package.

--An alternative to Numpy that can use GPU --Deep learning platform that combines speed and flexibility

Getting Started

Tensors

Tensors are similar to Numpy's ndarrays, except that they can be calculated on the GPU.

from __future__ import print_function
import torch

Note

An uninitialized matrix is declared, but does not contain definite known values before it is used. When an uninitialized matrix is created, whatever values were in the allocated memory at the time will appear as the initial values.

Construct a 5x3 matrix, uninitialized: Generate an uninitialized 5x3 matrix

x = torch.empty(5, 3)
print(x)

Construct a randomly initialized matrix:

Generate a randomly initialized matrix

x = torch.rand(5, 3)
print(x)

Construct a matrix filled zeros and of dtype long:

Generate a zero-initialized long matrix

x = torch.zeros(5, 3, dtype=torch.long)
print(x)

Construct a tensor directly from data:

Generate a matrix from the data

x = torch.tensor([5.5, 3])
print(x)

or create a tensor based on an existing tensor. These methods will reuse properties of the input tensor, e.g. dtype, unless new values are provided by user

Alternatively, generate a tensor from an existing tensor. These methods reuse the entered tensor properties unless specified by the user. Example: type

x = x.new_ones(5, 3, dtype=torch.double)      # new_* methods take in sizes
print(x)

x = torch.randn_like(x, dtype=torch.float)    # override dtype!
print(x)                                      # result has the same size

Get its size:

Get the size of the tensor

print(x.size())

Note

``torch.Size`` is in fact a tuple, so it supports all tuple operations.

Operations

There are multiple syntaxes for operations. In the following example, we will take a look at the addition operation.

Addition: syntax 1

operation

There are various distributions in the operation. The grammar of addition is shown below.

Addition 1

y = torch.rand(5, 3)
print(x + y)
---------------------------------------------------------------------------

NameError                                 Traceback (most recent call last)

<ipython-input-1-3846198563ac> in <module>
----> 1 y = torch.rand(5, 3)
      2 print(x + y)


NameError: name 'torch' is not defined

Addition: syntax 2

Addition 2

print(torch.add(x, y))

Addition: providing an output tensor as argument

Addition: Pass the output tensor as an argument

result = torch.empty(5, 3)
torch.add(x, y, out=result)
print(result)

Addition: in-place

Addition: On the spot

# adds x to y
y.add_(x)
print(y)

Note

Any operation that mutates a tensor in-place is post-fixed with an ``_``. For example: ``x.copy_(y)``, ``x.t_()``, will change ``x``.

You can use standard NumPy-like indexing with all bells and whistles!

You can use almost any Numpy indexing! !!

print(x[:, 1])

Resizing: If you want to resize/reshape tensor, you can use torch.view:

Resize: If you want to change the shape of the tensor, you can use torch.view:

x = torch.randn(4, 4)
y = x.view(16)
z = x.view(-1, 8)  # the size -1 is inferred from other dimensions
print(x.size(), y.size(), z.size())

If you have a one element tensor, use .item() to get the value as a Python number

Use .item () to retrieve Python numbers from a tensor with one element

x = torch.randn(1)
print(x)
print(x.item())

Read later:

100+ Tensor operations, including transposing, indexing, slicing, mathematical operations, linear algebra, random numbers, etc., are described here <https://pytorch.org/docs/torch>_.

** Read later **

For more information https://pytorch.org/docs/torch

NumPy Bridge

Converting a Torch Tensor to a NumPy array and vice versa is a breeze.

The Torch Tensor and NumPy array will share their underlying memory locations (if the Torch Tensor is on CPU), and changing one will change the other.

Converting a Torch Tensor to a NumPy Array ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Numpy Bridge

Easy to convert torch tensor to Numpy array

Torch tensor and Numpy array share memory (pointer-like) If you change the tensor, so does the Numpy array. And vice versa

a = torch.ones(5)
print(a)
b = a.numpy()
print(b)

See how the numpy array changed in value.

Let's see how the torch tensor changes.

a.add_(1)
print(a)
print(b)

Converting NumPy Array to Torch Tensor ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ See how changing the np array changed the Torch Tensor automatically

Convert Numpy array to Torch tensor

import numpy as np
a = np.ones(5)
b = torch.from_numpy(a)
np.add(a, 1, out=a)
print(a)
print(b)

All the Tensors on the CPU except a CharTensor support converting to NumPy and back.

CUDA Tensors

Tensors can be moved onto any device using the .to method.

All tensors except CharTensor support conversion to Numpy array.

CUDA Tensors

You can move the tensor to your favorite device using .to.

# let us run this cell only if CUDA is available
# We will use ``torch.device`` objects to move tensors in and out of GPU
if torch.cuda.is_available():
    device = torch.device("cuda")          # a CUDA device object
    y = torch.ones_like(x, device=device)  # directly create a tensor on GPU
    x = x.to(device)                       # or just use strings ``.to("cuda")``
    z = x + y
    print(z)
    print(z.to("cpu", torch.double))       # ``.to`` can also change dtype together!

Recommended Posts

Appropriate Japanese translation of pytorch tensor_tutorial
Japanese translation of sysstat manual
Japanese translation of Linux manual
Japanese translation of the e2fsprogs manual
Japanese translation of the man-db manual
Japanese translation of the util-linux manual
Japanese translation of the iproute2 manual
Japanese translation of the LDP man-pages manual
Japanese translation: PEP 20 --The Zen of Python
sosreport Japanese translation
Translation of scsi_mid_low_api.txt
man systemd Japanese translation
streamlit explanation Japanese translation
streamlit tutorial Japanese translation
Japanese localization of Pycharm
Dockerfile reference Japanese translation
docker-compose --help Japanese translation
docker help Japanese translation
Japanese translation of public teaching materials for Deep learning nanodegree
[PyTorch] Image classification of CIFAR-10
Japanese display of matplotlib, seaborn
Japanese localization setting of PyCharm
About Japanese path of pyminizip
[PyTorch] Tutorial (Japanese version) ② ~ AUTOGRAD ~
docker build --help Japanese translation
Prediction of Nikkei 225 with Pytorch 2
[PyTorch] Tutorial (Japanese version) ① ~ Tensor ~
Prediction of Nikkei 225 with Pytorch
docker run --help Japanese translation