Advertisement
Guest User

Untitled

a guest
May 25th, 2021
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.17 KB | None | 0 0
  1.     float getScoreDeep(const vector<int> &ts) {
  2.         float output = 0.0;
  3.         for (int i=0; i < hidden; i++) {
  4.             float score = 0.0;
  5.             for (int j=0; j < 14; j++) {
  6.                 score += hiddenWeights[(i*14+j)*units+ts[j]];
  7.             }
  8.             score = relu(score);
  9.             output += outputWeights[i] * score;
  10.         }
  11.  
  12.         return tanh(output);
  13.     }
  14.  
  15. =========================
  16.  
  17. this one is 6 times faster o.O
  18.  
  19.     float getScoreDeep(const vector<int> &ts) {
  20.         float output = 0.0;
  21.         int k = 26 * ts[0] + ts[1];
  22.         int k1 = 64 * ts[2] + ts[3];
  23.         int k2 = 64 * ts[4] + ts[5];
  24.         int k3 = 64 * ts[6] + ts[7];
  25.         int k4 = 64 * ts[8] + ts[9];
  26.         int k5 = 64 * ts[10] + ts[11];
  27.         int k6 = 64 * ts[12] + ts[13];
  28.         for (int i=0; i < hidden; i++) {
  29.             float score = cache[k * hidden + i] + cache1[k1 * hidden + i] + cache2[k2 * hidden + i] + cache3[k3 * hidden + i] + cache4[k4 * hidden + i] + cache5[k5 * hidden + i] + cache6[k6 * hidden + i];
  30.             score = relu(score);
  31.             output += outputWeights[i] * score;
  32.         }
  33.  
  34.         return tanh(output);
  35.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement