这次我们来继续设计我们的SoftMax函数实现。
上次我们将SoftMax函数进行了简单的分析,发现算法的实现第一个难点就是如何实现指数函数。这次我打算囫囵吞枣的来简述一下指数函数的实现。
在最初思考如何去实现指数函数的时候,脑海中有两种思路,一是使用MATLAB对指数函数进项采样,再以自变量值位地址位(假设地址位共8位,自变量值位高四位,所以每个数据就会有8位的字长),函数值为存储数据存储进ROM中。这样每次函数值的调用就是对ROM中的数值的读取过程。
二就是使用CORDIC算法来实现指数函数。这种办法只使用旋转和移位的操作来实现指数函数。
综合以上的两种思路,初步希望使用CORDIC算法来实现指数函数,后期如果有时间的话会使用ROM来实现一下看资源使用率和最长路径时间会不会有巨大的差距。
既然决定使用CORDIC算法来实现指数函数,首先我们要对CORDIC算法有一个初步的认识。CORDIC算法全称为坐标旋转计算法,是一个“化繁为简”的算法,将许多复杂的运算转化为一种“仅需要移位和加法”的迭代操作。他经常被使用的计算公式