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