Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- float getScoreDeep(const vector<int> &ts) {
- float output = 0.0;
- for (int i=0; i < hidden; i++) {
- float score = 0.0;
- for (int j=0; j < 14; j++) {
- score += hiddenWeights[(i*14+j)*units+ts[j]];
- }
- score = relu(score);
- output += outputWeights[i] * score;
- }
- return tanh(output);
- }
- =========================
- this one is 6 times faster o.O
- float getScoreDeep(const vector<int> &ts) {
- float output = 0.0;
- int k = 26 * ts[0] + ts[1];
- int k1 = 64 * ts[2] + ts[3];
- int k2 = 64 * ts[4] + ts[5];
- int k3 = 64 * ts[6] + ts[7];
- int k4 = 64 * ts[8] + ts[9];
- int k5 = 64 * ts[10] + ts[11];
- int k6 = 64 * ts[12] + ts[13];
- for (int i=0; i < hidden; i++) {
- 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];
- score = relu(score);
- output += outputWeights[i] * score;
- }
- return tanh(output);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement