import numpy as np
A = np.arange(10*3).reshape((10,3))
B = np.arange(10*5).reshape((10,5))
print(A)
# [[ 0 1 2]
# [ 3 4 5]
# [ 6 7 8]
# [ 9 10 11]
# [12 13 14]
# [15 16 17]
# [18 19 20]
# [21 22 23]
# [24 25 26]
# [27 28 29]]
print(B)
# [[ 0 1 2 3 4]
# [ 5 6 7 8 9]
# [10 11 12 13 14]
# [15 16 17 18 19]
# [20 21 22 23 24]
# [25 26 27 28 29]
# [30 31 32 33 34]
# [35 36 37 38 39]
# [40 41 42 43 44]
# [45 46 47 48 49]]
import numpy as np
A = np.arange(10*3).reshape((10, 3))
B = np.arange(10*5).reshape((10, 5))
outer_product = np.array([np.outer(A[i], B[i]) for i in
range(A.shape[0])])
tensor_product = np.tensordot(A, B, axes=0)
print(f"Внешнее произведение: \n{outer_product}")
print(f"\nТензорное произведение: \n{tensor_product}")
Внешнее произведение:
[[[ 0 0 0 0 0]
[ 0 1 2 3 4]
[ 0 2 4 6 8]]
[[ 15 18 21 24 27]
[ 20 24 28 32 36]
[ 25 30 35 40 45]]
[[ 60 66 72 78 84]
[ 70 77 84 91 98]
[ 80 88 96 104 112]]
[[ 135 144 153 162 171]
[ 150 160 170 180 190]
[ 165 176 187 198 209]]
[[ 240 252 264 276 288]
[ 260 273 286 299 312]
[ 280 294 308 322 336]]
[[ 375 390 405 420 435]
[ 400 416 432 448 464]
[ 425 442 459 476 493]]
[[ 540 558 576 594 612]
[ 570 589 608 627 646]
[ 600 620 640 660 680]]
[[ 735 756 777 798 819]
[ 770 792 814 836 858]
[ 805 828 851 874 897]]
[[ 960 984 1008 1032 1056]
[1000 1025 1050 1075 1100]
[1040 1066 1092 1118 1144]]
[[1215 1242 1269 1296 1323]
[1260 1288 1316 1344 1372]
[1305 1334 1363 1392 1421]]]
Тензорное произведение:
[[[[ 0 0 0 0 0]
[ 0 0 0 0 0]
[ 0 0 0 0 0]
...
[ 0 0 0 0 0]
[ 0 0 0 0 0]
[ 0 0 0 0 0]]
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[ 10 11 12 13 14]
...
[ 35 36 37 38 39]
[ 40 41 42 43 44]
[ 45 46 47 48 49]]
[[ 0 2 4 6 8]
[ 10 12 14 16 18]
[ 20 22 24 26 28]
...
[ 70 72 74 76 78]
[ 80 82 84 86 88]
[ 90 92 94 96 98]]]
[[[ 0 3 6 9 12]
[ 15 18 21 24 27]
[ 30 33 36 39 42]
...
[ 105 108 111 114 117]
[ 120 123 126 129 132]
[ 135 138 141 144 147]]
[[ 0 4 8 12 16]
[ 20 24 28 32 36]
[ 40 44 48 52 56]
...
[ 140 144 148 152 156]
[ 160 164 168 172 176]
[ 180 184 188 192 196]]
[[ 0 5 10 15 20]
[ 25 30 35 40 45]
[ 50 55 60 65 70]
...
[ 175 180 185 190 195]
[ 200 205 210 215 220]
[ 225 230 235 240 245]]]
[[[ 0 6 12 18 24]
[ 30 36 42 48 54]
[ 60 66 72 78 84]
...
[ 210 216 222 228 234]
[ 240 246 252 258 264]
[ 270 276 282 288 294]]
[[ 0 7 14 21 28]
[ 35 42 49 56 63]
[ 70 77 84 91 98]
...
[ 245 252 259 266 273]
[ 280 287 294 301 308]
[ 315 322 329 336 343]]
[[ 0 8 16 24 32]
[ 40 48 56 64 72]
[ 80 88 96 104 112]
...
[ 280 288 296 304 312]
[ 320 328 336 344 352]
[ 360 368 376 384 392]]]
...
[[[ 0 21 42 63 84]
[ 105 126 147 168 189]
[ 210 231 252 273 294]
...
[ 735 756 777 798 819]
[ 840 861 882 903 924]
[ 945 966 987 1008 1029]]
[[ 0 22 44 66 88]
[ 110 132 154 176 198]
[ 220 242 264 286 308]
...
[ 770 792 814 836 858]
[ 880 902 924 946 968]
[ 990 1012 1034 1056 1078]]
[[ 0 23 46 69 92]
[ 115 138 161 184 207]
[ 230 253 276 299 322]
...
[ 805 828 851 874 897]
[ 920 943 966 989 1012]
[1035 1058 1081 1104 1127]]]
[[[ 0 24 48 72 96]
[ 120 144 168 192 216]
[ 240 264 288 312 336]
...
[ 840 864 888 912 936]
[ 960 984 1008 1032 1056]
[1080 1104 1128 1152 1176]]
[[ 0 25 50 75 100]
[ 125 150 175 200 225]
[ 250 275 300 325 350]
...
[ 875 900 925 950 975]
[1000 1025 1050 1075 1100]
[1125 1150 1175 1200 1225]]
[[ 0 26 52 78 104]
[ 130 156 182 208 234]
[ 260 286 312 338 364]
...
[ 910 936 962 988 1014]
[1040 1066 1092 1118 1144]
[1170 1196 1222 1248 1274]]]
[[[ 0 27 54 81 108]
[ 135 162 189 216 243]
[ 270 297 324 351 378]
...
[ 945 972 999 1026 1053]
[1080 1107 1134 1161 1188]
[1215 1242 1269 1296 1323]]
[[ 0 28 56 84 112]
[ 140 168 196 224 252]
[ 280 308 336 364 392]
...
[ 980 1008 1036 1064 1092]
[1120 1148 1176 1204 1232]
[1260 1288 1316 1344 1372]]
[[ 0 29 58 87 116]
[ 145 174 203 232 261]
[ 290 319 348 377 406]
...
[1015 1044 1073 1102 1131]
[1160 1189 1218 1247 1276]
[1305 1334 1363 1392 1421]]]]