代码:
import numpy as np
def im2col(mtx, block_size):
mtx_shape = mtx.shape
sx = mtx_shape[0] - block_size[0] + 1
sy = mtx_shape[1] - block_size[1] + 1
# 如果设A为m×n的,对于[p q]的块划分,最后矩阵的行数为p×q,列数为(m−p+1)×(n−q+1)。
result = np.empty((block_size[0] * block_size[1], sx * sy))
# 沿着行移动,所以先保持列(i)不动,沿着行(j)走
for i in range(sy):
for j in range(sx):
result[:, i * sx + j] = mtx[j:j + block_size[0], i:i + block_size[1]].ravel(order='F')
return result
def col2im(mtx, image_size, block_size):
p, q = block_size
sx = image_size[0] - p + 1
sy = image_size[1] - q + 1
result = np.zeros(image_size)
weight = np.zeros(image_size) # weight记录每个单元格的数字重复加了多少遍
col = 0
# 沿着行移动,所以先保持列(i)不动,沿着行(j)走
for i in range(sy):
for j in range(sx):
result[j:j + p, i:i + q] += mtx[:, col].reshape(block_size, order='F')
weight[j:j + p, i:i + q] += np.ones(block_size)
col += 1
return result / weight
if __name__ == '__main__':
mtx = np.around(np.random.rand(5, 5) * 100)
print('原始矩阵:')
print(mtx)
a1 = im2col(mtx, (2, 3))
print('im2col(分块大小2x3):')
print(a1)
b1 = col2im(a1, (5, 5), (2, 3))
print('col2im复原:')
print(b1)
a2 = im2col(mtx, (3, 3))
print('im2col(分块大小3x3):')
print(a2)
b2 = col2im(a2, (5, 5), (3, 3))
print('col2im复原:')
print(b2)
运行结果:
原始矩阵:
[[25. 28. 68. 75. 6.]
[89. 1. 56. 33. 84.]
[41. 20. 33. 59. 7.]
[36. 20. 74. 57. 8.]
[ 8. 50. 88. 19. 47.]]
im2col(分块大小2x3):
[[25. 89. 41. 36. 28. 1. 20. 20. 68. 56. 33. 74.]
[89. 41. 36. 8. 1. 20. 20. 50. 56. 33. 74. 88.]
[28. 1. 20. 20. 68. 56. 33. 74. 75. 33. 59. 57.]
[ 1. 20. 20. 50. 56. 33. 74. 88. 33. 59. 57. 19.]
[68. 56. 33. 74. 75. 33. 59. 57. 6. 84. 7. 8.]
[56. 33. 74. 88. 33. 59. 57. 19. 84. 7. 8. 47.]]
col2im复原:
[[25. 28. 68. 75. 6.]
[89. 1. 56. 33. 84.]
[41. 20. 33. 59. 7.]
[36. 20. 74. 57. 8.]
[ 8. 50. 88. 19. 47.]]
im2col(分块大小3x3):
[[25. 89. 41. 28. 1. 20. 68. 56. 33.]
[89. 41. 36. 1. 20. 20. 56. 33. 74.]
[41. 36. 8. 20. 20. 50. 33. 74. 88.]
[28. 1. 20. 68. 56. 33. 75. 33. 59.]
[ 1. 20. 20. 56. 33. 74. 33. 59. 57.]
[20. 20. 50. 33. 74. 88. 59. 57. 19.]
[68. 56. 33. 75. 33. 59. 6. 84. 7.]
[56. 33. 74. 33. 59. 57. 84. 7. 8.]
[33. 74. 88. 59. 57. 19. 7. 8. 47.]]
col2im复原:
[[25. 28. 68. 75. 6.]
[89. 1. 56. 33. 84.]
[41. 20. 33. 59. 7.]
[36. 20. 74. 57. 8.]
[ 8. 50. 88. 19. 47.]]
另一种实现:
import numpy as np
def im2col(input_data, filter_h, filter_w, stride=1, pad=0):
"""
Parameters
----------
input_data : 由(数据量, 通道, 高, 长)的4维数组构成的输入数据
filter_h : 滤波器的高
filter_w : 滤波器的长
stride : 步幅
pad : 填充
Returns
-------
col : 2维数组
"""
N, C, H, W = input_data.shape
out_h = (H + 2*pad - filter_h)//stride + 1
out_w = (W + 2*pad - filter_w)//stride + 1
img = np.pad(input_data, [(0,0), (0,0), (pad, pad), (pad, pad)], 'constant')
col = np.zeros((N, C, filter_h, filter_w, out_h, out_w))
for y in range(filter_h):
y_max = y + stride*out_h
for x in range(filter_w):
x_max = x + stride*out_w
col[:, :, y, x, :, :] = img[:, :, y:y_max:stride, x:x_max:stride]
col = col.transpose(0, 4, 5, 1, 2, 3).reshape(N*out_h*out_w, -1)
return col
def col2im(col, input_shape, filter_h, filter_w, stride=1, pad=0):
"""
Parameters
----------
col :
input_shape : 输入数据的形状(例:(10, 1, 28, 28))
filter_h :
filter_w
stride
pad
Returns
-------
"""
N, C, H, W = input_shape
out_h = (H + 2*pad - filter_h)//stride + 1
out_w = (W + 2*pad - filter_w)//stride + 1
col = col.reshape(N, out_h, out_w, C, filter_h, filter_w).transpose(0, 3, 4, 5, 1, 2)
img = np.zeros((N, C, H + 2*pad + stride - 1, W + 2*pad + stride - 1))
for y in range(filter_h):
y_max = y + stride*out_h
for x in range(filter_w):
x_max = x + stride*out_w
img[:, :, y:y_max:stride, x:x_max:stride] = col[:, :, y, x, :, :]
return img[:, :, pad:H + pad, pad:W + pad]
A=np.random.rand(1,1,28,28)
B=im2col(A,5,5)
print(B.shape)
C=col2im(B,(1,1,28,28), 5,5)
print(A)
print(C)
print(A==C)
czl@czl-VirtualBox:~/WorkSpace/py$ python3 a.py
(576, 25)
[[[[0.30925507 0.16943751 0.65800229 0.95875119 0.22181735 0.78935377
0.5611471 0.71773148 0.03710927 0.18242339 0.90502488 0.2917084
0.45644893 0.23163848 0.74258785 0.96066048 0.103793 0.2438452
0.87755956 0.99099046 0.82630757 0.25844964 0.43982919 0.71531541
0.76605418 0.89129242 0.96892431 0.75498988]
[0.28871325 0.01554137 0.4874278 0.54765766 0.13567841 0.43497241
0.67625429 0.85286246 0.16363263 0.44380585 0.48894984 0.66732865
0.39781412 0.20838005 0.78508355 0.34807437 0.60392717 0.97560132
0.38719517 0.05144362 0.42919299 0.11942759 0.39710934 0.56367447
0.16752852 0.40861488 0.51174168 0.33518555]
[0.50572752 0.04328565 0.06376692 0.14967602 0.10954767 0.62548981
0.87613525 0.67077381 0.24437231 0.36633117 0.65288815 0.42834836
0.18131572 0.8422041 0.6732005 0.54607831 0.87231436 0.37974702
0.78830492 0.74785099 0.01721254 0.9292132 0.92348256 0.05267913
0.64218665 0.33215371 0.31362967 0.59620738]
[0.98224844 0.8992224 0.34996822 0.78009485 0.25624387 0.38162907
0.79336897 0.27143524 0.32807625 0.88439516 0.62029764 0.58107736
0.33984692 0.89805166 0.22786957 0.7067741 0.92273607 0.83760567
0.725111 0.94588531 0.22085246 0.58221311 0.53220109 0.26124274
0.16587299 0.07284156 0.60241892 0.9914676 ]
[0.59095903 0.49982909 0.1070442 0.97360356 0.41270991 0.13702843
0.99233227 0.70982437 0.67602428 0.11064851 0.461044 0.72061232
0.23686676 0.89743996 0.54900766 0.64177347 0.00811398 0.45831314
0.45523755 0.03469376 0.01355815 0.16441001 0.37882577 0.03543619
0.46812099 0.88082956 0.94454241 0.34902778]
[0.38118405 0.45766047 0.13316004 0.99218096 0.60078394 0.0593621
0.49699231 0.66054172 0.77262257 0.50026206 0.14023372 0.88233126
0.08935572 0.96716801 0.82470177 0.61843937 0.89212328 0.87563421
0.02756115 0.31035317 0.83299412 0.38875922 0.54714859 0.02499596
0.96153546 0.97062703 0.68064864 0.28425784]
[0.48551744 0.28666124 0.61889881 0.29460029 0.54903592 0.52967002
0.12414246 0.55463067 0.15136569 0.70283119 0.06719044 0.82119844
0.98340096 0.73661683 0.7927273 0.39280604 0.7377103 0.57462831
0.35249311 0.7293912 0.40030137 0.22144661 0.64154555 0.46801262
0.1102148 0.87533375 0.99391913 0.07502493]
[0.77211467 0.80643504 0.86662769 0.89549014 0.13880436 0.86249188
0.71472266 0.46143296 0.52935896 0.43103546 0.34563046 0.13154483
0.77983907 0.25545044 0.47523772 0.87392153 0.12104372 0.63961299
0.34064898 0.89320227 0.15053394 0.46277235 0.50827447 0.92339283
0.09175319 0.47434151 0.79890413 0.62635338]
[0.51702574 0.94955692 0.10160291 0.53556944 0.66128951 0.35763039
0.68201615 0.99381399 0.30508021 0.26529833 0.85642223 0.19604374
0.61966122 0.56028908 0.6322168 0.11322752 0.61260264 0.09045031
0.8371358 0.979855 0.44961557 0.48082731 0.1956776 0.4375109
0.296315 0.50660881 0.51436347 0.26123644]
[0.60516735 0.98739527 0.81976251 0.95192912 0.86241793 0.32664674
0.21904941 0.01049836 0.89555837 0.21879733 0.73364993 0.74397893
0.67488672 0.69512472 0.72027684 0.46011282 0.82596174 0.9641483
0.81965678 0.87161144 0.13250012 0.4338714 0.35937427 0.18272557
0.32370603 0.18833978 0.15476137 0.27837697]
[0.70588966 0.30532111 0.44565222 0.97039775 0.56653723 0.38406287
0.6077055 0.68828362 0.86106669 0.01016379 0.29444224 0.50928238
0.62640631 0.94835095 0.42844478 0.36047504 0.4596324 0.91463506
0.19092089 0.58564823 0.40854919 0.07156242 0.66393201 0.16209994
0.58434987 0.61303904 0.35334581 0.95982287]
[0.17977933 0.41249231 0.34839803 0.14754683 0.46350267 0.55716387
0.09136454 0.43548046 0.62397526 0.07636257 0.61237555 0.94797384
0.25179893 0.99459724 0.53826546 0.74598127 0.06927767 0.99016501
0.66941426 0.937525 0.08995556 0.890447 0.87823647 0.61293441
0.44581928 0.97191793 0.99262908 0.05883808]
[0.08186484 0.00915378 0.26332125 0.97260021 0.9911886 0.04768462
0.4140117 0.32687971 0.23685741 0.72450575 0.13607532 0.03389397
0.87417725 0.66711537 0.6469604 0.66595733 0.75377556 0.13060926
0.22834049 0.54544642 0.11899126 0.23962383 0.69115536 0.86035851
0.95611831 0.29271668 0.47012237 0.03210162]
[0.02011724 0.17465478 0.59145115 0.34552423 0.22008345 0.78967655
0.06910216 0.52918292 0.81630863 0.74570741 0.5854973 0.37773852
0.4937587 0.09490281 0.71619592 0.54784222 0.2505745 0.13647399
0.37849411 0.60617061 0.1441368 0.85540003 0.70335866 0.84920408
0.24027601 0.90612673 0.45755863 0.7876253 ]
[0.84021484 0.30572569 0.51418079 0.08646556 0.55625154 0.48893026
0.70912717 0.4757645 0.58472325 0.23974579 0.06298644 0.72805323
0.6923206 0.79607941 0.17900265 0.99390802 0.10574198 0.23342667
0.32564825 0.9652132 0.89911338 0.52611884 0.05417476 0.99145125
0.30954898 0.77050378 0.57034008 0.89161917]
[0.2608916 0.86297939 0.0086417 0.80108977 0.24676915 0.22021491
0.74842772 0.94149295 0.13555838 0.79037885 0.12412095 0.95851731
0.32066845 0.03559272 0.73736316 0.29924552 0.88590059 0.24627875
0.54821712 0.00988738 0.13994077 0.53879512 0.54507323 0.90317533
0.34809384 0.46056478 0.10259827 0.51823186]
[0.64645135 0.36412336 0.89979334 0.58138998 0.65456268 0.02824955
0.50456315 0.36930107 0.01924547 0.32225461 0.66359888 0.46528701
0.31359275 0.95926133 0.68011842 0.86009965 0.22273352 0.95211145
0.64925269 0.36517558 0.5544179 0.34810014 0.79235297 0.12945008
0.50737683 0.27430506 0.23311922 0.23887912]
[0.10698851 0.02329926 0.27190809 0.09029885 0.44126068 0.92759123
0.48744583 0.29286883 0.7863554 0.48094365 0.79418086 0.45834017
0.58556643 0.81861735 0.69019279 0.20999025 0.94171298 0.3301118
0.58481856 0.05731134 0.68993335 0.55530982 0.22487912 0.46361735
0.85678375 0.21815621 0.64649731 0.32319553]
[0.1354806 0.68275335 0.37000187 0.84824884 0.50260398 0.30166501
0.92094049 0.73126231 0.86472395 0.64325348 0.52286596 0.17512249
0.71676732 0.9803505 0.50260354 0.93493127 0.79926929 0.72737886
0.71789299 0.30656281 0.0454161 0.77229607 0.50750487 0.74993665
0.14173114 0.10926176 0.68457464 0.40812552]
[0.68826786 0.26486995 0.96125501 0.30419349 0.84775949 0.43074755
0.54800916 0.54207759 0.07387979 0.66038177 0.86420928 0.19138967
0.50634202 0.76277039 0.72980758 0.3403772 0.8710647 0.71456691
0.317927 0.9301498 0.74196042 0.18289587 0.56815358 0.74500616
0.53666389 0.43714876 0.66563942 0.59832128]
[0.79249447 0.96056595 0.89066497 0.14968069 0.45511991 0.15613498
0.60340819 0.74777859 0.90410183 0.49420796 0.63611035 0.88432288
0.6638805 0.89619125 0.70146878 0.850391 0.90029285 0.21939875
0.40033834 0.67267191 0.54587614 0.7738448 0.91216707 0.69737273
0.73520126 0.57446337 0.24084128 0.70247113]
[0.80081165 0.20896179 0.25708771 0.46396369 0.89741127 0.92714742
0.69274658 0.19896709 0.40279656 0.51522074 0.59082328 0.34597999
0.12336096 0.99699812 0.05956788 0.318531 0.74980606 0.6261879
0.0603253 0.70713415 0.2848258 0.93723044 0.51302813 0.99735012
0.54022628 0.18135191 0.8122631 0.89811547]
[0.70621468 0.26124592 0.37218738 0.82113393 0.34453596 0.01983219
0.95521849 0.0605529 0.79149184 0.91119305 0.94692107 0.74603269
0.2817147 0.64392655 0.86550813 0.67530149 0.9701393 0.46091759
0.36208273 0.77482033 0.05222307 0.81001032 0.65949752 0.34755673
0.95688331 0.70680914 0.74747591 0.7549644 ]
[0.65566428 0.39058795 0.96870108 0.75361516 0.55759129 0.98615488
0.05845372 0.76100071 0.42399033 0.29204982 0.42812448 0.00603968
0.36479402 0.97263114 0.53028793 0.424102 0.95337892 0.19936929
0.75807174 0.75367724 0.98876901 0.01928404 0.37109291 0.36153116
0.94484325 0.54871709 0.09780128 0.63127826]
[0.71640052 0.11556 0.01173875 0.62205609 0.35616337 0.34357245
0.88551331 0.94227172 0.90737298 0.97928345 0.44580171 0.12847613
0.78076487 0.59548219 0.40102703 0.5085637 0.20604175 0.50271614
0.29669288 0.52013826 0.60068813 0.59418917 0.11420845 0.38212699
0.02276358 0.59852505 0.99810432 0.31658599]
[0.17460957 0.86656628 0.66944158 0.06200809 0.24903373 0.58085515
0.36093573 0.73582412 0.19281325 0.27135943 0.96696229 0.13365172
0.85163087 0.01604899 0.95092822 0.86615411 0.29184304 0.10359502
0.10132912 0.71854473 0.34626102 0.89558975 0.92463828 0.97634505
0.25273784 0.91470718 0.41314109 0.74870397]
[0.61491941 0.2017124 0.72955923 0.91218639 0.03974069 0.42955276
0.47199428 0.39210187 0.16214161 0.96074394 0.90677357 0.51211276
0.36782391 0.66984246 0.81874713 0.92567346 0.86560203 0.6537707
0.01345526 0.16554665 0.31872964 0.87509354 0.99275322 0.66622806
0.68542804 0.80825868 0.59938032 0.793373 ]
[0.69272233 0.37713337 0.37905352 0.21396054 0.55375879 0.40196032
0.21398471 0.51226839 0.58157735 0.17364139 0.04001717 0.49787444
0.28105904 0.35033117 0.17425426 0.29656101 0.67918275 0.96517461
0.58874588 0.38050672 0.21512112 0.13492644 0.55061397 0.82613472
0.4731471 0.3502615 0.22746737 0.18777691]]]]
[[[[0.30925507 0.16943751 0.65800229 0.95875119 0.22181735 0.78935377
0.5611471 0.71773148 0.03710927 0.18242339 0.90502488 0.2917084
0.45644893 0.23163848 0.74258785 0.96066048 0.103793 0.2438452
0.87755956 0.99099046 0.82630757 0.25844964 0.43982919 0.71531541
0.76605418 0.89129242 0.96892431 0.75498988]
[0.28871325 0.01554137 0.4874278 0.54765766 0.13567841 0.43497241
0.67625429 0.85286246 0.16363263 0.44380585 0.48894984 0.66732865
0.39781412 0.20838005 0.78508355 0.34807437 0.60392717 0.97560132
0.38719517 0.05144362 0.42919299 0.11942759 0.39710934 0.56367447
0.16752852 0.40861488 0.51174168 0.33518555]
[0.50572752 0.04328565 0.06376692 0.14967602 0.10954767 0.62548981
0.87613525 0.67077381 0.24437231 0.36633117 0.65288815 0.42834836
0.18131572 0.8422041 0.6732005 0.54607831 0.87231436 0.37974702
0.78830492 0.74785099 0.01721254 0.9292132 0.92348256 0.05267913
0.64218665 0.33215371 0.31362967 0.59620738]
[0.98224844 0.8992224 0.34996822 0.78009485 0.25624387 0.38162907
0.79336897 0.27143524 0.32807625 0.88439516 0.62029764 0.58107736
0.33984692 0.89805166 0.22786957 0.7067741 0.92273607 0.83760567
0.725111 0.94588531 0.22085246 0.58221311 0.53220109 0.26124274
0.16587299 0.07284156 0.60241892 0.9914676 ]
[0.59095903 0.49982909 0.1070442 0.97360356 0.41270991 0.13702843
0.99233227 0.70982437 0.67602428 0.11064851 0.461044 0.72061232
0.23686676 0.89743996 0.54900766 0.64177347 0.00811398 0.45831314
0.45523755 0.03469376 0.01355815 0.16441001 0.37882577 0.03543619
0.46812099 0.88082956 0.94454241 0.34902778]
[0.38118405 0.45766047 0.13316004 0.99218096 0.60078394 0.0593621
0.49699231 0.66054172 0.77262257 0.50026206 0.14023372 0.88233126
0.08935572 0.96716801 0.82470177 0.61843937 0.89212328 0.87563421
0.02756115 0.31035317 0.83299412 0.38875922 0.54714859 0.02499596
0.96153546 0.97062703 0.68064864 0.28425784]
[0.48551744 0.28666124 0.61889881 0.29460029 0.54903592 0.52967002
0.12414246 0.55463067 0.15136569 0.70283119 0.06719044 0.82119844
0.98340096 0.73661683 0.7927273 0.39280604 0.7377103 0.57462831
0.35249311 0.7293912 0.40030137 0.22144661 0.64154555 0.46801262
0.1102148 0.87533375 0.99391913 0.07502493]
[0.77211467 0.80643504 0.86662769 0.89549014 0.13880436 0.86249188
0.71472266 0.46143296 0.52935896 0.43103546 0.34563046 0.13154483
0.77983907 0.25545044 0.47523772 0.87392153 0.12104372 0.63961299
0.34064898 0.89320227 0.15053394 0.46277235 0.50827447 0.92339283
0.09175319 0.47434151 0.79890413 0.62635338]
[0.51702574 0.94955692 0.10160291 0.53556944 0.66128951 0.35763039
0.68201615 0.99381399 0.30508021 0.26529833 0.85642223 0.19604374
0.61966122 0.56028908 0.6322168 0.11322752 0.61260264 0.09045031
0.8371358 0.979855 0.44961557 0.48082731 0.1956776 0.4375109
0.296315 0.50660881 0.51436347 0.26123644]
[0.60516735 0.98739527 0.81976251 0.95192912 0.86241793 0.32664674
0.21904941 0.01049836 0.89555837 0.21879733 0.73364993 0.74397893
0.67488672 0.69512472 0.72027684 0.46011282 0.82596174 0.9641483
0.81965678 0.87161144 0.13250012 0.4338714 0.35937427 0.18272557
0.32370603 0.18833978 0.15476137 0.27837697]
[0.70588966 0.30532111 0.44565222 0.97039775 0.56653723 0.38406287
0.6077055 0.68828362 0.86106669 0.01016379 0.29444224 0.50928238
0.62640631 0.94835095 0.42844478 0.36047504 0.4596324 0.91463506
0.19092089 0.58564823 0.40854919 0.07156242 0.66393201 0.16209994
0.58434987 0.61303904 0.35334581 0.95982287]
[0.17977933 0.41249231 0.34839803 0.14754683 0.46350267 0.55716387
0.09136454 0.43548046 0.62397526 0.07636257 0.61237555 0.94797384
0.25179893 0.99459724 0.53826546 0.74598127 0.06927767 0.99016501
0.66941426 0.937525 0.08995556 0.890447 0.87823647 0.61293441
0.44581928 0.97191793 0.99262908 0.05883808]
[0.08186484 0.00915378 0.26332125 0.97260021 0.9911886 0.04768462
0.4140117 0.32687971 0.23685741 0.72450575 0.13607532 0.03389397
0.87417725 0.66711537 0.6469604 0.66595733 0.75377556 0.13060926
0.22834049 0.54544642 0.11899126 0.23962383 0.69115536 0.86035851
0.95611831 0.29271668 0.47012237 0.03210162]
[0.02011724 0.17465478 0.59145115 0.34552423 0.22008345 0.78967655
0.06910216 0.52918292 0.81630863 0.74570741 0.5854973 0.37773852
0.4937587 0.09490281 0.71619592 0.54784222 0.2505745 0.13647399
0.37849411 0.60617061 0.1441368 0.85540003 0.70335866 0.84920408
0.24027601 0.90612673 0.45755863 0.7876253 ]
[0.84021484 0.30572569 0.51418079 0.08646556 0.55625154 0.48893026
0.70912717 0.4757645 0.58472325 0.23974579 0.06298644 0.72805323
0.6923206 0.79607941 0.17900265 0.99390802 0.10574198 0.23342667
0.32564825 0.9652132 0.89911338 0.52611884 0.05417476 0.99145125
0.30954898 0.77050378 0.57034008 0.89161917]
[0.2608916 0.86297939 0.0086417 0.80108977 0.24676915 0.22021491
0.74842772 0.94149295 0.13555838 0.79037885 0.12412095 0.95851731
0.32066845 0.03559272 0.73736316 0.29924552 0.88590059 0.24627875
0.54821712 0.00988738 0.13994077 0.53879512 0.54507323 0.90317533
0.34809384 0.46056478 0.10259827 0.51823186]
[0.64645135 0.36412336 0.89979334 0.58138998 0.65456268 0.02824955
0.50456315 0.36930107 0.01924547 0.32225461 0.66359888 0.46528701
0.31359275 0.95926133 0.68011842 0.86009965 0.22273352 0.95211145
0.64925269 0.36517558 0.5544179 0.34810014 0.79235297 0.12945008
0.50737683 0.27430506 0.23311922 0.23887912]
[0.10698851 0.02329926 0.27190809 0.09029885 0.44126068 0.92759123
0.48744583 0.29286883 0.7863554 0.48094365 0.79418086 0.45834017
0.58556643 0.81861735 0.69019279 0.20999025 0.94171298 0.3301118
0.58481856 0.05731134 0.68993335 0.55530982 0.22487912 0.46361735
0.85678375 0.21815621 0.64649731 0.32319553]
[0.1354806 0.68275335 0.37000187 0.84824884 0.50260398 0.30166501
0.92094049 0.73126231 0.86472395 0.64325348 0.52286596 0.17512249
0.71676732 0.9803505 0.50260354 0.93493127 0.79926929 0.72737886
0.71789299 0.30656281 0.0454161 0.77229607 0.50750487 0.74993665
0.14173114 0.10926176 0.68457464 0.40812552]
[0.68826786 0.26486995 0.96125501 0.30419349 0.84775949 0.43074755
0.54800916 0.54207759 0.07387979 0.66038177 0.86420928 0.19138967
0.50634202 0.76277039 0.72980758 0.3403772 0.8710647 0.71456691
0.317927 0.9301498 0.74196042 0.18289587 0.56815358 0.74500616
0.53666389 0.43714876 0.66563942 0.59832128]
[0.79249447 0.96056595 0.89066497 0.14968069 0.45511991 0.15613498
0.60340819 0.74777859 0.90410183 0.49420796 0.63611035 0.88432288
0.6638805 0.89619125 0.70146878 0.850391 0.90029285 0.21939875
0.40033834 0.67267191 0.54587614 0.7738448 0.91216707 0.69737273
0.73520126 0.57446337 0.24084128 0.70247113]
[0.80081165 0.20896179 0.25708771 0.46396369 0.89741127 0.92714742
0.69274658 0.19896709 0.40279656 0.51522074 0.59082328 0.34597999
0.12336096 0.99699812 0.05956788 0.318531 0.74980606 0.6261879
0.0603253 0.70713415 0.2848258 0.93723044 0.51302813 0.99735012
0.54022628 0.18135191 0.8122631 0.89811547]
[0.70621468 0.26124592 0.37218738 0.82113393 0.34453596 0.01983219
0.95521849 0.0605529 0.79149184 0.91119305 0.94692107 0.74603269
0.2817147 0.64392655 0.86550813 0.67530149 0.9701393 0.46091759
0.36208273 0.77482033 0.05222307 0.81001032 0.65949752 0.34755673
0.95688331 0.70680914 0.74747591 0.7549644 ]
[0.65566428 0.39058795 0.96870108 0.75361516 0.55759129 0.98615488
0.05845372 0.76100071 0.42399033 0.29204982 0.42812448 0.00603968
0.36479402 0.97263114 0.53028793 0.424102 0.95337892 0.19936929
0.75807174 0.75367724 0.98876901 0.01928404 0.37109291 0.36153116
0.94484325 0.54871709 0.09780128 0.63127826]
[0.71640052 0.11556 0.01173875 0.62205609 0.35616337 0.34357245
0.88551331 0.94227172 0.90737298 0.97928345 0.44580171 0.12847613
0.78076487 0.59548219 0.40102703 0.5085637 0.20604175 0.50271614
0.29669288 0.52013826 0.60068813 0.59418917 0.11420845 0.38212699
0.02276358 0.59852505 0.99810432 0.31658599]
[0.17460957 0.86656628 0.66944158 0.06200809 0.24903373 0.58085515
0.36093573 0.73582412 0.19281325 0.27135943 0.96696229 0.13365172
0.85163087 0.01604899 0.95092822 0.86615411 0.29184304 0.10359502
0.10132912 0.71854473 0.34626102 0.89558975 0.92463828 0.97634505
0.25273784 0.91470718 0.41314109 0.74870397]
[0.61491941 0.2017124 0.72955923 0.91218639 0.03974069 0.42955276
0.47199428 0.39210187 0.16214161 0.96074394 0.90677357 0.51211276
0.36782391 0.66984246 0.81874713 0.92567346 0.86560203 0.6537707
0.01345526 0.16554665 0.31872964 0.87509354 0.99275322 0.66622806
0.68542804 0.80825868 0.59938032 0.793373 ]
[0.69272233 0.37713337 0.37905352 0.21396054 0.55375879 0.40196032
0.21398471 0.51226839 0.58157735 0.17364139 0.04001717 0.49787444
0.28105904 0.35033117 0.17425426 0.29656101 0.67918275 0.96517461
0.58874588 0.38050672 0.21512112 0.13492644 0.55061397 0.82613472
0.4731471 0.3502615 0.22746737 0.18777691]]]]
[[[[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]
[ True True True True True True True True True True True
True True True True True True True True True True True
True True True True True True]]]]
czl@czl-VirtualBox:~/WorkSpace/py$
这个版本的实现来源于教材:深度学习入门,最原始的版本中有一个BUG,注意下图的加号
应该把+=号改为=号,以上代码就是修改后的版本,可以看到验证是正确的。
具体分析可以参考: