tx · DrftWca7J6bqUwVfecQjir8mFkKk6zDrPUzysY89nBUr 3N3n75UqB8G1GKmXFr4zPhKCjGcqJPRSuJY: -0.01000000 Waves 2024.03.20 11:48 [3026124] smart account 3N3n75UqB8G1GKmXFr4zPhKCjGcqJPRSuJY > SELF 0.00000000 Waves
{ "type": 13, "id": "DrftWca7J6bqUwVfecQjir8mFkKk6zDrPUzysY89nBUr", "fee": 1000000, "feeAssetId": null, "timestamp": 1710924548566, "version": 2, "chainId": 84, "sender": "3N3n75UqB8G1GKmXFr4zPhKCjGcqJPRSuJY", "senderPublicKey": "2AWdnJuBMzufXSjTvzVcawBQQhnhF1iXR6QNVgwn33oc", "proofs": [ "2QJyVUoazWmKB2J1s7UofFsuXfwfDzyLCdGgVAB42Gm5BSMaV42Hu1ay3G597XCGiZLPRDQRyWtuEMQp9KUbJx8E" ], "script": "base64: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", "height": 3026124, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6Y2GzGcfsxCgU1SddEdT3CCK5LQvSxrsxPzfRuKPfv9v Next: Dt43XLUUf8BCJnkLcq3JC7kCQ4a6N3PTGwv5jeCvkDY2 Diff:
Old | New | Differences | |
---|---|---|---|
39 | 39 | let hiddenLayerOutput = forwardPass(input, layer1Weights, layer1Biases) | |
40 | 40 | let outputLayerSum = (dotProduct(hiddenLayerOutput, layer2Weights[0]) + layer2Biases[0]) | |
41 | 41 | let output = sigmoid(outputLayerSum) | |
42 | - | ||
42 | + | [IntegerEntry("hiddenLayerOutput1", hiddenLayerOutput[0]), IntegerEntry("hiddenLayerOutput2", hiddenLayerOutput[1]), IntegerEntry("outputLayerSum", outputLayerSum), IntegerEntry("finalOutput", output)] | |
43 | 43 | } | |
44 | 44 | ||
45 | 45 | ||
51 | 51 | let scaledInput2 = if ((input2 == 1)) | |
52 | 52 | then 1000000 | |
53 | 53 | else 0 | |
54 | - | let result = xorNeuralNetwork(scaledInput1, scaledInput2) | |
55 | - | [IntegerEntry("result", 43)] | |
54 | + | xorNeuralNetwork(scaledInput1, scaledInput2) | |
56 | 55 | } | |
57 | 56 | ||
58 | 57 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let layer1Weights = [[4721113, -5002107], [6226846, -6353789]] | |
5 | 5 | ||
6 | 6 | let layer1Biases = [-2521378, 3389498] | |
7 | 7 | ||
8 | 8 | let layer2Weights = [[8109936, -7559760]] | |
9 | 9 | ||
10 | 10 | let layer2Biases = [3490942] | |
11 | 11 | ||
12 | 12 | func sigmoid (z) = { | |
13 | 13 | let e = 2718281 | |
14 | 14 | let base = 1000000 | |
15 | 15 | let negativeZ = (-1 * z) | |
16 | 16 | let expPart = fraction(e, negativeZ, base) | |
17 | 17 | fraction(base, base, (base + expPart)) | |
18 | 18 | } | |
19 | 19 | ||
20 | 20 | ||
21 | 21 | func dotProduct (a,b) = { | |
22 | 22 | let product0 = fraction(a[0], b[0], 1000000) | |
23 | 23 | let product1 = fraction(a[1], b[1], 1000000) | |
24 | 24 | (product0 + product1) | |
25 | 25 | } | |
26 | 26 | ||
27 | 27 | ||
28 | 28 | func forwardPass (input,weights,biases) = { | |
29 | 29 | let sum0 = (dotProduct(input, weights[0]) + biases[0]) | |
30 | 30 | let sum1 = (dotProduct(input, weights[1]) + biases[1]) | |
31 | 31 | let sig0 = sigmoid(sum0) | |
32 | 32 | let sig1 = sigmoid(sum1) | |
33 | 33 | [sig0, sig1] | |
34 | 34 | } | |
35 | 35 | ||
36 | 36 | ||
37 | 37 | func xorNeuralNetwork (input1,input2) = { | |
38 | 38 | let input = [input1, input2] | |
39 | 39 | let hiddenLayerOutput = forwardPass(input, layer1Weights, layer1Biases) | |
40 | 40 | let outputLayerSum = (dotProduct(hiddenLayerOutput, layer2Weights[0]) + layer2Biases[0]) | |
41 | 41 | let output = sigmoid(outputLayerSum) | |
42 | - | ||
42 | + | [IntegerEntry("hiddenLayerOutput1", hiddenLayerOutput[0]), IntegerEntry("hiddenLayerOutput2", hiddenLayerOutput[1]), IntegerEntry("outputLayerSum", outputLayerSum), IntegerEntry("finalOutput", output)] | |
43 | 43 | } | |
44 | 44 | ||
45 | 45 | ||
46 | 46 | @Callable(i) | |
47 | 47 | func predict (input1,input2) = { | |
48 | 48 | let scaledInput1 = if ((input1 == 1)) | |
49 | 49 | then 1000000 | |
50 | 50 | else 0 | |
51 | 51 | let scaledInput2 = if ((input2 == 1)) | |
52 | 52 | then 1000000 | |
53 | 53 | else 0 | |
54 | - | let result = xorNeuralNetwork(scaledInput1, scaledInput2) | |
55 | - | [IntegerEntry("result", 43)] | |
54 | + | xorNeuralNetwork(scaledInput1, scaledInput2) | |
56 | 55 | } | |
57 | 56 | ||
58 | 57 |
github/deemru/w8io/c3f4982 24.20 ms ◑