python 수 동 볼 륨 작업 실현
1534 단어 Pytho
import numpy as np
def conv2d(img, in_channels, out_channels ,kernels, bias, stride=1, padding=0):
N, C, H, W = img.shape
kh, kw = kernels.shape
p = padding
assert C == in_channels, "kernels' input channels do not match with img"
if p:
img = np.pad(img, ((0,0),(0,0),(p,p),(p,p)), 'constant') # padding along with all axis
out_h = (H + 2*padding - kh) // stride + 1
out_w = (W + 2*padding - kw) // stride + 1
outputs = np.zeros([N, out_channels, out_h, out_w])
# print(img)
for n in range(N):
for out in range(out_channels):
for i in range(in_channels):
for h in range(out_h):
for w in range(out_w):
for x in range(kh):
for y in range(kw):
outputs[n][out][h][w] += img[n][i][h * stride + x][w * stride + y] * kernels[x][y]
# if i == in_channels - 1:
# outputs[n][out][:][:] += bias[n][out]
return outputs
if __name__ == '__main__':
img = np.asarray(
[[
[
[0,1,2,3,4],
[1,2,3,4,5],
[2,3,4,5,6],
[3,4,5,6,7],
[4,5,6,7,8],
],
[
[1,2,3,4,5],
[2,3,4,5,6],
[3,4,5,6,7],
[4,5,6,7,8],
[5,6,7,8,9]
],
[
[2,3,4,5,6],
[3,4,5,6,7],
[4,5,6,7,8],
[5,6,7,8,9],
[6,7,8,9,0]
],
]]
)
kernels = np.asarray(
[
[1,1,1],
[1,1,1],
[1,1,1]
]
)
bias = np.asarray([[0,1],[0,0],[0,0]])
in_channels = 3
out_channels = 3
outputs = conv2d(img, in_channels, out_channels, kernels, bias, 2, 1)
print(outputs)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
농 구 를 좋아해요?Python 농구 게임 실현예 1 전체 절 차 는 다음 과 같다.원본 복사 프로그램 만 실행 할 수 없습니다.위의 4 프레임 스타일 을 캡 처 하고 4 개의 png 그래 픽 파일 로 나 눈 다음 배경 을 투명 하 게 해 야 합 니 다.도형 크...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.