7
9

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.

numpy備忘録1/np.pad

Posted at

#1.はじめに
 np.padの使い方が良くわからなかったので、調べた結果を備忘録として残します。

#2.1次元配列

# 1次元配列
img = np.array([1, 2, 3])
print(img)
print('img.shape = ', img.shape)
img = np.pad(img, [(1,2)], 'constant')
print(img)

スクリーンショット 2020-02-06 11.09.53.png
img = np.pad(img, [(左0埋め数, 右0埋め数)], 'constant')

#3.2次元配列

# 2次元配列
img = np.array([[1, 2, 3], [4, 5, 6]])
print(img)
print('img.shape = ', img.shape)
img = np.pad(img, [(1,2), (3, 4)], 'constant')
print(img)

スクリーンショット 2020-02-06 11.17.57.png
img = np.pad(img, [(上0埋め数, 下0埋め数), (左0埋め数, 右0埋め数)], 'constant')

#4.3次元配列

# 3次元配列
img = np.array( [[[1, 2, 3], [4, 5, 6]],  [[7, 8, 9], [0, 1, 2]]])    
print(img)
print('img.shape = ', img.shape)
img = np.pad(img, [(1,0), (1, 1), (1, 1)], 'constant')
print(img)

スクリーンショット 2020-02-06 12.46.43.png

 今までは画像のパディングだけでしたが、今度はその画像の前後に0画像(全て0で埋め尽くされたもの)を何枚入れるか指定します。ここでは、前に1枚入れています。つまり、

img = np.pad(img, [(前0画像数, 後0画像数), (上0埋め数, 下0埋め数), (左0埋め数, 右0埋め数)], 'constant')

#5.4次元配列

# 4次元配列
img = np.array([[[[1, 2, 3], [4, 5, 6]], [[7, 8, 9],[0, 1, 2]]]])
print(img)
print('img.shape = ', img.shape)
img = np.pad(img, [(1,0), (1,0), (1, 1), (1, 1)], 'constant')
print(img)

スクリーンショット 2020-02-06 12.51.02.png

 今度は、今まで作成した画像(パディングした画像+0画像)の枚数分の0画像を、さらに前後に指定セット分追加します。ここでは、前に1セット入れています。つまり、

img = np.pad(img, [(前0画像セット数, 後0画像セット数), (前0画像数, 後0画像数), (上0埋め数, 下0埋め数), (左0埋め数, 右0埋め数)], 'constant')

#6.実際の使い方例
 4次元配列 img (ミニバッチサイズ、チャンネル数、縦幅、横幅)のパディング処理をする場合を考えてみます。縦方向のパディングを p_h, 横方向のパディングを p_w とします。バッチ方向やチャンネル方向のパディングは不要なので、

img = np.pad(img, [(0, 0), (0, 0), (p_h, p_h), (p_w, p_w)], 'constant')

7
9
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
7
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?