numpy 비망록1/np.pad

8457 단어 패딩파이썬numpy

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)

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)

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)



지금까지는 화상의 패딩만이었습니다만, 이번은 그 화상의 전후에 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)



이번에는, 지금까지 작성한 화상(패딩한 화상+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')

좋은 웹페이지 즐겨찾기