Я пытаюсь объединить различные части массивов и кортежей для создания серии продуктов. Вот кортеж 'я':Получение точечных продуктов из массивов numpy и кортежей одновременно
i=(2,5)
Здесь первая матрица 'ш':
w=[array([[-1.95446441, 1.53904854, -0.3461807 ],
[-0.19153855, -1.63290931, -1.76897156]]),
array([[ 0.25648535],
[ 0.20186475],
[ 0.78002102]])]
вот вторая матрица 'Ъ':
[array([[-0.02676943],
[ 0.25294377],
[-0.43625132]]),
array([[ 0.07763943]])]
Я пытаюсь сделать ряд продуктов из различных частей этих структур данных в списке списков или матриц под названием «a».
Список этих продуктов должен быть эквивалентен:
a[0][0] = (w[0][0][0]*i[0]) + (w[0][1][0]*i[1]) + b[0][0]
a[0][1] = (w[0][0][1]*i[0]) + (w[0][1][1]*i[1]) + b[0][1]
a[0][2] = (w[0][0][2]*i[0]) + (w[0][1][2]*i[1]) + b[0][2]
a[1][0] = (w[1][0] * a[0][0]) + (w[1][1] * a[0][1]) + (w[1][2] * a[0][2]) + b[1][0]
Я пытаюсь использовать это как часть нейронной сети и написал версию, которая работает отлично с помощью итерации. Однако я новичок в numpy и хотел бы построить матричную версию этого. Проблема, с которой я столкнулась, связана с пониманием синтаксиса numpy для выполнения описанной выше операции. Я попытался адаптировать это из онлайн-учебника, но не уверен, куда идти отсюда.
for b, w in zip(b, w):
layer = sigmoid(np.dot(w, layer)+b.T)
a.append(layer)
Это проливает и ошибка:
ValueError: shapes (2,3) and (1,3) not aligned: 3 (dim 1) != 1 (dim 0)
Все указатели будут очень полезны?
Ошибка довольно ясна, размеры матрицы не совпадают. Вы пытаетесь вычислить произведение матрицы 2x3 и матрицы 1x3. Я предполагаю, что вы должны сделать 'np.dot (w, np.tranpose (layer))' –
Спасибо за ваш комментарий, да, я понимаю, почему возникает ошибка, но его синтаксис, а не вычисление.Если вы посмотрите на то, что я подробно описал выше, особенно последний раздел 'a [1] [0] = (w [1] [0] * a [0] [0]) + (w [1] [1] * a [0] [1]) + (w [1] [2] * a [0] [2]) + b [1] [0] «это то, чего я пытаюсь достичь, но просто не знаю, как получить numpy сделать это в обобщенной форме. – user3062260