|
- #include "ops.h"
-
- namespace operators {
- static float epsilon = 1e-6;
-
- float is_close(float x, float y) {
- // 请修改这里的return语句
- return (float)(abs(x-y)<epsilon);
- }
-
- float sigmoid(float x) {
- // 请修改这里的return语句
- if(x>=0) return 1.0/(1.0+exp(-x));
- else return exp(x)/(1.0+exp(x));
- }
-
- float relu(float x) {
- // 请修改这里的return语句
- return x>0.0?x:0.0;
- }
-
- float inv(float x) {
- // 请修改这里的return语句
- return 1.0/x;
- }
-
- float inv_back(float x, float d) {
- // 请修改这里的return语句
- return -d/(x*x);
- }
-
- float relu_back(float x, float d) {
- // 请修改这里的return语句
- return x>0.0?d*1.0:0.0;
- }
-
- auto sumList(const std::vector<float>& vec) -> float {
- return reduce(vec, 0.0f, add<float>);
- }
-
- auto prodList(const std::vector<float>& vec) -> float {
- // 请修改这里的return语句
- return reduce(vec, 1.0f, mul<float>);
- }
-
- auto addLists(const std::vector<float>& vec1, const std::vector<float>& vec2) -> std::vector<float> {
- // 请修改这里的return语句
- return zipWith(vec1, vec2, add<float>);
- }
-
- auto negList(const std::vector<float>& vec) -> std::vector<float> {
- // 请修改这里的return语句
- return map(vec,neg<float>);
- }
- }
|