0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PyTorch 練習

Last updated at Posted at 2021-06-08

#(1) PyTorch installation

(bash) $ conda create -n py37_pytorch python=3.7 anaconda

(bash) $ conda activate py37_pytorch

(py37_pytorch) $ conda install pytorch torchvision -c pytorch

## Package Plan ##

  environment location: /home/[username]/.pyenv/versions/anaconda3-5.2.0/envs/py37_pytorch

  added / updated specs:
    - pytorch
    - torchvision

#(2) IPアドレス確認。

$ ip -f inet addr
1: lo: <LOOPBACK,UP,LOWER_UP> 

2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> 
    inet aaa.bb.cc.ddd/ee brd PPP.QQ.RR.SSS scope global noprefixroute eno1
       valid_lft forever preferred_lft forever

のように出てくるが、ここでは「aaa.bb.cc.ddd」を覚えておく。

#(3) リモート設定

参考 https://qiita.com/syo_cream/items/05553b41277523a131fd

まず、jupyter用のパスワードを設定する。

(py37_pytorch) $ cd ~/.jupyter/
(py37_pytorch) $ jupyter notebook password

Enter password: 
Verify password: 
[NotebookPasswordApp] Wrote hashed password to /home/[username]/.jupyter/jupyter_notebook_config.json

(py37_pytorch) $ ls
jupyter_notebook_config.py
jupyter_notebook_config.json

jupyter_notebook_config.pyは、すでに(多分その昔やろうとして失敗した残骸として)あった。

これを編集する。

具体的に書き加えるのは


# これを最初の行に入れる!
c = get_config()

# Notebook上でplotを表示できるようにする [これはまだやっていない。]
# c.IPKernelApp.pylab = 'inline'

# 全てのIPから接続を許可
c.NotebookApp.ip = '*'

# IPython notebookのログインパスワード
c.NotebookApp.password = '[jsonファイルに書かれている
ハッシュ化されたパスワード]'

# 起動時にブラウザを起動させるかの設定
c.NotebookApp.open_browser = False
# ポート指定
c.NotebookApp.port = [接続ポート]

この[接続ポート]は8888がデフォルト。しかし、バッティングしても面倒なので、念のため違う数字にしておいた。

#(4) リモートでjupyter

以上は全てSSH先で行う。最後に、SSH先で

$ jupyter notebook

とやっておく。自分のローカルのパソコンで、ブラウザに
http://aaa.bb.cc.ddd:[接続ポート]
とやると、パスワードを要求されるので、それを入力すると、リモート環境でjupyterが利用できる。

(5) PyTorch

"Deep Learning with PyTorch" (Eli Stevens, Luca Antiga, and Thomas Viehmann)
https://github.com/deep-learning-with-pytorch/dlwpt-code

chapter 2. Pretrained networks
chapter 2.6 Exercises
Feed the image of the golden retriever [shetland sheepdog] into the horse-to-zebra model.

  • What do you need to do to the image to prepare it?

  • What does the output look like?

shetland_sheepdog でGoogle検索して出てきた画像(mv_library_dog_shetland_sheepdog.png)をjpgに変換したあと、horse-to-zebra modelに入れると、「シマウマっぽい模様を持つ犬」になる。

download.png

chapter 3.14 Exercises

Create a tensor a from list(range(9)). Predict and then check the size, offset, and stride.

import torch 
a = torch.tensor(list(range(9)))
a
# tensor([0, 1, 2, 3, 4, 5, 6, 7, 8])

a.size()
# torch.Size([9])

a.storage_offset()
# 0

a.stride()
# (1,)

a.storage()
# 0
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# [torch.LongStorage of size 9]

Create a new tensor using b = a.view(3, 3). What does view do? Check that a and b share the same storage.

b = a.view(3, 3)
b
#tensor([[0, 1, 2],
#        [3, 4, 5],
#        [6, 7, 8]])

b.size()
# torch.Size([3, 3])

b.storage_offset()
# 0

b.stride()
# (3, 1)

id(a.storage)==id(b.storage) ## storageを比較する。
# True

Create a tensor c = b[1:,1:]. Predict and then check the size, offset, and stride.

c = b[1:,1:]
c
# tensor([[4, 5],
#        [7, 8]])

c.size()
# torch.Size([2, 2])

c.storage_offset()
4

c.stride()
# (3, 1). ### ここは予想と違った。なるほどである。


id(a.storage)==id(c.storage)  # aとcはstorageは同じ。
# True

Pick a mathematical operation like cosine or square root. Can you find a corresponding function in the torch library?

Apply the function element-wise to a. Why does it return an error?

torch.cos(0.)
# --------------------------------------------
# TypeError Traceback (most recent call last)
# <ipython-input-16-191b65904589> in <module>
# ----> 1 torch.cos(0.)
#
# TypeError: cos(): argument 'input' (position 1) must be Tensor, not float

What operation is required to make the function work?

torch.cos(a)
# tensor([ 1.0000,  0.5403, -0.4161, -0.9900, -0.6536,  0.2837,  0.9602,  0.7539,
        -0.1455])

Is there a version of your function that operates in place?

これはよくわからない。
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?