亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

“ValueError:matmul:輸入操作數 1 的核心維度 0 不匹配...”

“ValueError:matmul:輸入操作數 1 的核心維度 0 不匹配...”

楊魅力 2023-08-03 17:14:19
我剛剛開始學習 Python/NumPy。我想編寫一個函數,該函數將應用具有 2 個輸入和 1 個輸出以及給定權重矩陣的運算,即兩個形狀為 (2,1) 的 NumPy 數組,并應使用 tanh 返回形狀為 (1,1) 的 NumPy 數組。這是我想出的:import numpy as npdef test_neural(inputs,weights):    result=np.matmul(inputs,weights)    print(result)    z = np.tanh(result)    return (z)x = np.array([[1],[1]])y = np.array([[1],[1]])z=test_neural(x,y)print("final result:",z)但我收到以下 matmul 錯誤:ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 2 is different from 1)有人可以告訴我我缺少什么嗎?
查看完整描述

1 回答

?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

問題是矩陣乘法的維度。


您可以將矩陣與共享維度相乘,如下所示(在此處了解更多信息):


(M , N) * (N , K) => Result dimensions is (M, K)


你嘗試乘法:


(2 , 1) * (2, 1)

但尺寸是非法的。


因此,您必須inputs在乘法之前進行轉置(只需應用于.T矩陣),這樣您就可以獲得乘法的有效維度:


(1, 2) * (2, 1) => Result dimension is (1, 1)

代碼:


import numpy as np

def test_neural(inputs,weights):

    result=np.matmul(inputs.T, weights)

    print(result)

    z = np.tanh(result)

    return (z)

x = np.array([[1],[1]])

y = np.array([[1],[1]])


z=test_neural(x,y)


# final result: [[0.96402758]]

print("final result:",z)


查看完整回答
反對 回復 2023-08-03
  • 1 回答
  • 0 關注
  • 302 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號