[ 1, 0, 0, 0, 0 ] Как
[ 0, 1, 0, 0, 0 ] нейросети
[ 0, 0, 1, 0, 0 ] обрабатывают
[ 0, 0, 0, 1, 0 ] текстовую
[ 0, 0, 0, 0, 1 ] информацию
запись1 - 3.377852191807931e-49 * 0.1 * 1 = 1.0
3.3e-49
означает 3.3 умножить на 10 в –49-й степени. Т.е. какое-то очень малое число.0.(50 нулей)33
>>> 0.1 + 0.2
0.30000000000000004
4e-16
. А уж числа порядка 1e-50
тем более пропадут и будут считаться за ноль. взаимодействие нейросетей с графическими элементами, а не только с математическимиНейросети работают только с «математическими элементами», с числами. Чтобы скормить картинку в сеть, её переводят в массив чисел: каждый пиксель в 1 (серое) или 3 (red, green, blue) значения от 0 до 255.
ИЛИ
не нужен скрытый слой "h" – достаточно одного.ИЛИ
веса будут b = -1, w1 = 2, w2 = 2import numpy as np
x = np.random.random((5,3,3)) * 10 // 1
array([[[8., 8., 1.],
[8., 1., 6.],
[0., 7., 7.]],
[[2., 7., 2.],
[4., 5., 1.],
[6., 8., 5.]],
[[5., 1., 1.],
[0., 1., 8.],
[5., 7., 1.]],
[[0., 5., 9.],
[6., 7., 3.],
[5., 0., 5.]],
[[0., 1., 9.],
[1., 2., 3.],
[0., 4., 7.]]])
y = x.reshape(5,9).argmax(axis=1)
# array([0, 7, 5, 2, 2])
f = lambda i: (i // 3, i % 3)
# или вернее так:
f = lambda i: (i // x.shape[1], i % x.shape[2])
(a, b) = f(y)
# array([0, 2, 1, 0, 0]), array([0, 1, 2, 2, 2])
result = np.empty((a.size + b.size,), dtype=a.dtype)
result[0::2] = a
result[1::2] = b
result.reshape(5,2)
array([[0, 0],
[2, 1],
[1, 2],
[0, 2],
[0, 2]])