Numpy中的快速交叉熵

Numpy中的快速交叉熵,numpy,machine-learning,Numpy,Machine Learning,我已经提出了交叉熵的两个版本,一个是更矢量化的点积格式,另一个是你将在任何ML课程中看到的典型版本。我试图加快我的算法,因此将利用任何机会来加快它 我的问题是:考虑到Numpy库的体系结构和其他约束条件,上面哪种交叉熵损失实现计算得最快。了解标签的典型值有助于基准测试。如果标签太短,纯python实现实际上可能比使用NumPy更快 回到你的问题上来,我想说点积已经是标量了(单个数字),“np点式”中不需要np.sum(它以另一种方式对乘积数组求和) 希望有帮助。刚刚编辑过。 cost =

我已经提出了交叉熵的两个版本,一个是更矢量化的点积格式,另一个是你将在任何ML课程中看到的典型版本。我试图加快我的算法,因此将利用任何机会来加快它


我的问题是:考虑到Numpy库的体系结构和其他约束条件,上面哪种交叉熵损失实现计算得最快。

了解标签的典型值有助于基准测试。如果标签太短,纯python实现实际上可能比使用NumPy更快

回到你的问题上来,我想说点积已经是标量了(单个数字),“np点式”中不需要np.sum(它以另一种方式对乘积数组求和)


希望有帮助。

刚刚编辑过。
  cost = -(1.0/m) * np.sum(Y*np.log(A) + (1-Y)*np.log(1-A))

    Vectorized Version
  cost = -(1.0/m) * (np.dot(np.log(A), Y.T) + np.dot(np.log(1-A), (1-Y).T))