我目前正在通過計算機科學教科書中的一些概念。線性代數大量使用,他們在教科書中顯示的例子都使用Numpy。Numpy:乘以一個向量
一個表情特別讓我完全困惑,因爲它似乎是一個完全無用的表達。從教科書逐字複製,它說:
normalisers = sum(exp(outputs),axis=1)*ones((1,shape(outputs)[0]))
所以,我會刪除exp
爲簡化起見(這是不相關的這裏的問題),這給了我們:
sum(outputs,axis=1)*ones((1,shape(outputs)[0]))
其中outputs
是二維Numpy array
(矩陣)。
據我所知,這只是求和outputs
矩陣中的所有行,然後將得到的向量乘以所有元素的向量。那麼......這裏所有的乘法點都有什麼意義呢?它根本不會改變這些值。
這是教科書中的一個錯誤,還是我只是沒有看到如何乘以所有的值可能對這裏的值產生任何影響?在這一點上,我只對Numpy有些熟悉,所以我不確定我是不是誤解了這個表達式的一些含義。
這是否會將結果從(dim,)向量更改爲(1,dim)矩陣..?雖然我不會那樣做! – jmetz 2012-07-25 16:30:58
我認爲它可以在以後有所作爲,無論矩陣是(n,)還是(1,n)大小...... – jmetz 2012-07-25 16:35:59