tx · 5YEessYepbheYsZNiX56NeUXqYCKwLNXVy2zuHJdzinQ 3N3n75UqB8G1GKmXFr4zPhKCjGcqJPRSuJY: -0.01000000 Waves 2024.03.24 13:46 [3032034] smart account 3N3n75UqB8G1GKmXFr4zPhKCjGcqJPRSuJY > SELF 0.00000000 Waves
{ "type": 13, "id": "5YEessYepbheYsZNiX56NeUXqYCKwLNXVy2zuHJdzinQ", "fee": 1000000, "feeAssetId": null, "timestamp": 1711277208398, "version": 2, "chainId": 84, "sender": "3N3n75UqB8G1GKmXFr4zPhKCjGcqJPRSuJY", "senderPublicKey": "2AWdnJuBMzufXSjTvzVcawBQQhnhF1iXR6QNVgwn33oc", "proofs": [ "2JTWNaRsz6nBGAjZXp5cwVqCzFMoDzx8fdqkVx2nnAaovoG6hxuPPXVgwG2pmerY9YdHyvsAR65vJfpHB5FWkHzL" ], "script": "base64:AAIFAAAAAAAAAAgIAhIECgIBAQAAAAoAAAAADWxheWVyMVdlaWdodHMJAARMAAAAAgkABEwAAAACAP//////cniYCQAETAAAAAIAAAAAAABe8TsFAAAAA25pbAkABEwAAAACCQAETAAAAAIA//////9zl10JAARMAAAAAgD//////5ySIwUAAAADbmlsCQAETAAAAAIJAARMAAAAAgD//////+isZQkABEwAAAACAAAAAAAArrgcBQAAAANuaWwJAARMAAAAAgkABEwAAAACAP//////jS4VCQAETAAAAAIA//////+jw3IFAAAAA25pbAUAAAADbmlsAAAAAAxsYXllcjFCaWFzZXMJAARMAAAAAgD//////9jKZQkABEwAAAACAAAAAAAAI0lMCQAETAAAAAIA//////+3ebMJAARMAAAAAgAAAAAAABzq/gUAAAADbmlsAAAAAA1sYXllcjJXZWlnaHRzCQAETAAAAAIJAARMAAAAAgD//////4xpXQkABEwAAAACAAAAAAAAVEd+CQAETAAAAAIAAAAAAABka3YJAARMAAAAAgAAAAAAADmTEgUAAAADbmlsCQAETAAAAAIJAARMAAAAAgAAAAAAAGiw5AkABEwAAAACAP//////qO4YCQAETAAAAAIA//////+j58sJAARMAAAAAgD//////81JagUAAAADbmlsBQAAAANuaWwAAAAADGxheWVyMkJpYXNlcwkABEwAAAACAP//////z8HqCQAETAAAAAIAAAAAAAAs7/IFAAAAA25pbAAAAAANbGF5ZXIzV2VpZ2h0cwkABEwAAAACCQAETAAAAAIA//////93l4gJAARMAAAAAgAAAAAAAJE5MgUAAAADbmlsBQAAAANuaWwAAAAADGxheWVyM0JpYXNlcwkABEwAAAACAP///////RCjBQAAAANuaWwBAAAAB3NpZ21vaWQAAAACAAAAAXoAAAALZGVidWdQcmVmaXgEAAAAAWUAAAAAAAApekkEAAAABGJhc2UAAAAAAAAPQkAEAAAACXBvc2l0aXZlWgMJAABmAAAAAgAAAAAAAAAAAAUAAAABegkBAAAAAS0AAAABBQAAAAF6BQAAAAF6BAAAAAdleHBQYXJ0CQAAawAAAAMFAAAAAWUFAAAABGJhc2UFAAAACXBvc2l0aXZlWgQAAAAIc2lnVmFsdWUJAABrAAAAAwUAAAAEYmFzZQUAAAAEYmFzZQkAAGQAAAACBQAAAARiYXNlBQAAAAdleHBQYXJ0CQAFFAAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAALZGVidWdQcmVmaXgCAAAACXBvc2l0aXZlWgUAAAAJcG9zaXRpdmVaCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAAC2RlYnVnUHJlZml4AgAAAAdleHBQYXJ0BQAAAAdleHBQYXJ0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAAC2RlYnVnUHJlZml4AgAAAAhzaWdWYWx1ZQUAAAAIc2lnVmFsdWUFAAAAA25pbAUAAAAIc2lnVmFsdWUBAAAAEWZvcndhcmRQYXNzTGF5ZXIxAAAABAAAAAVpbnB1dAAAAAd3ZWlnaHRzAAAABmJpYXNlcwAAAAtkZWJ1Z1ByZWZpeAQAAAAEc3VtMAkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgkAAGQAAAACCQAAawAAAAMJAAGRAAAAAgUAAAAFaW5wdXQAAAAAAAAAAAAJAAGRAAAAAgkAAZEAAAACBQAAAAd3ZWlnaHRzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0JACQAAawAAAAMJAAGRAAAAAgUAAAAFaW5wdXQAAAAAAAAAAAEJAAGRAAAAAgkAAZEAAAACBQAAAAd3ZWlnaHRzAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAD0JACQAAawAAAAMJAAGRAAAAAgUAAAAFaW5wdXQAAAAAAAAAAAIJAAGRAAAAAgkAAZEAAAACBQAAAAd3ZWlnaHRzAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAD0JACQAAawAAAAMJAAGRAAAAAgUAAAAFaW5wdXQAAAAAAAAAAAMJAAGRAAAAAgkAAZEAAAACBQAAAAd3ZWlnaHRzAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAD0JACQABkQAAAAIFAAAABmJpYXNlcwAAAAAAAAAAAAQAAAAEc3VtMQkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgkAAGQAAAACCQAAawAAAAMJAAGRAAAAAgUAAAAFaW5wdXQAAAAAAAAAAAAJAAGRAAAAAgkAAZEAAAACBQAAAAd3ZWlnaHRzAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAD0JACQAAawAAAAMJAAGRAAAAAgUAAAAFaW5wdXQAAAAAAAAAAAEJAAGRAAAAAgkAAZEAAAACBQAAAAd3ZWlnaHRzAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAD0JACQAAawAAAAMJAAGRAAAAAgUAAAAFaW5wdXQAAAAAAAAAAAIJAAGRAAAAAgkAAZEAAAACBQAAAAd3ZWlnaHRzAAAAAAAAAAABAAAAAAAAAAACAAAAAAAAD0JACQAAawAAAAMJAAGRAAAAAgUAAAAFaW5wdXQAAAAAAAAAAAMJAAGRAAAAAgkAAZEAAAACBQAAAAd3ZWlnaHRzAAAAAAAAAAABAAAAAAAAAAADAAAAAAAAD0JACQABkQAAAAIFAAAABmJpYXNlcwAAAAAAAAAAAQQAAAAEc3VtMgkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgkAAGQAAAACCQAAawAAAAMJAAGRAAAAAgUAAAAFaW5wdXQAAAAAAAAAAAAJAAGRAAAAAgkAAZEAAAACBQAAAAd3ZWlnaHRzAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAD0JACQAAawAAAAMJAAGRAAAAAgUAAAAFaW5wdXQAAAAAAAAAAAEJAAGRAAAAAgkAAZEAAAACBQAAAAd3ZWlnaHRzAAAAAAAAAAACAAAAAAAAAAABAAAAAAAAD0JACQAAawAAAAMJAAGRAAAAAgUAAAAFaW5wdXQAAAAAAAAAAAIJAAGRAAAAAgkAAZEAAAACBQAAAAd3ZWlnaHRzAAAAAAAAAAACAAAAAAAAAAACAAAAAAAAD0JACQAAawAAAAMJAAGRAAAAAgUAAAAFaW5wdXQAAAAAAAAAAAMJAAGRAAAAAgkAAZEAAAACBQAAAAd3ZWlnaHRzAAAAAAAAAAACAAAAAAAAAAADAAAAAAAAD0JACQABkQAAAAIFAAAABmJpYXNlcwAAAAAAAAAAAgQAAAAEc3VtMwkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgkAAGQAAAACCQAAawAAAAMJAAGRAAAAAgUAAAAFaW5wdXQAAAAAAAAAAAAJAAGRAAAAAgkAAZEAAAACBQAAAAd3ZWlnaHRzAAAAAAAAAAAD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", "height": 3032034, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AzkepTgdsr4fYGk5ZLwJnFd387drQyDzUAC8hQq6gM1g Next: EmzniGRyRBaaKfZ7oDtNFkjbeo6yUeRZvkAi3sevZ1v1 Diff:
Old | New | Differences | |
---|---|---|---|
30 | 30 | let sum1 = ((((fraction(input[0], weights[1][0], 1000000) + fraction(input[1], weights[1][1], 1000000)) + fraction(input[2], weights[1][2], 1000000)) + fraction(input[3], weights[1][3], 1000000)) + biases[1]) | |
31 | 31 | let sum2 = ((((fraction(input[0], weights[2][0], 1000000) + fraction(input[1], weights[2][1], 1000000)) + fraction(input[2], weights[2][2], 1000000)) + fraction(input[3], weights[2][3], 1000000)) + biases[2]) | |
32 | 32 | let sum3 = ((((fraction(input[0], weights[3][0], 1000000) + fraction(input[1], weights[3][1], 1000000)) + fraction(input[2], weights[3][2], 1000000)) + fraction(input[3], weights[3][3], 1000000)) + biases[3]) | |
33 | - | let $ | |
34 | - | let debug0 = $ | |
35 | - | let sig0 = $ | |
36 | - | let $ | |
37 | - | let debug1 = $ | |
38 | - | let sig1 = $ | |
39 | - | let $ | |
40 | - | let debug2 = $ | |
41 | - | let sig2 = $ | |
42 | - | let $ | |
43 | - | let debug3 = $ | |
44 | - | let sig3 = $ | |
33 | + | let $t019922048 = sigmoid(sum0, (debugPrefix + "L1N0")) | |
34 | + | let debug0 = $t019922048._1 | |
35 | + | let sig0 = $t019922048._2 | |
36 | + | let $t020532109 = sigmoid(sum1, (debugPrefix + "L1N1")) | |
37 | + | let debug1 = $t020532109._1 | |
38 | + | let sig1 = $t020532109._2 | |
39 | + | let $t021142170 = sigmoid(sum2, (debugPrefix + "L1N2")) | |
40 | + | let debug2 = $t021142170._1 | |
41 | + | let sig2 = $t021142170._2 | |
42 | + | let $t021752231 = sigmoid(sum3, (debugPrefix + "L1N3")) | |
43 | + | let debug3 = $t021752231._1 | |
44 | + | let sig3 = $t021752231._2 | |
45 | 45 | $Tuple2([sig0, sig1, sig2, sig3], (((debug0 ++ debug1) ++ debug2) ++ debug3)) | |
46 | 46 | } | |
47 | 47 | ||
49 | 49 | func forwardPassLayer2 (input,weights,biases,debugPrefix) = { | |
50 | 50 | let sum0 = ((fraction(input[0], weights[0][0], 1000000) + fraction(input[1], weights[0][1], 1000000)) + biases[0]) | |
51 | 51 | let sum1 = ((fraction(input[0], weights[1][0], 1000000) + fraction(input[1], weights[1][1], 1000000)) + biases[1]) | |
52 | - | let $ | |
53 | - | let debug0 = $ | |
54 | - | let sig0 = $ | |
55 | - | let $ | |
56 | - | let debug1 = $ | |
57 | - | let sig1 = $ | |
52 | + | let $t026692725 = sigmoid(sum0, (debugPrefix + "L2N0")) | |
53 | + | let debug0 = $t026692725._1 | |
54 | + | let sig0 = $t026692725._2 | |
55 | + | let $t027302786 = sigmoid(sum1, (debugPrefix + "L2N1")) | |
56 | + | let debug1 = $t027302786._1 | |
57 | + | let sig1 = $t027302786._2 | |
58 | 58 | $Tuple2([sig0, sig1], (debug0 ++ debug1)) | |
59 | 59 | } | |
60 | 60 | ||
61 | 61 | ||
62 | - | func forwardPassLayer3 (input,weights,bias,debugPrefix) = { | |
63 | - | let dotProduct = (fraction(input[0], weights[0], 1000000) + fraction(input[1], weights[0], 1000000)) | |
64 | - | let sum = (dotProduct + bias) | |
65 | - | sigmoid(sum, debugPrefix) | |
62 | + | func forwardPassLayer3 (input,weights,biases,debugPrefix) = { | |
63 | + | let sum = ((fraction(input[0], weights[0], 1000000) + fraction(input[1], weights[0], 1000000)) + biases) | |
64 | + | let $t030553099 = sigmoid(sum, debugPrefix) | |
65 | + | let debug = $t030553099._1 | |
66 | + | let sig = $t030553099._2 | |
67 | + | $Tuple2(sig, debug) | |
66 | 68 | } | |
67 | 69 | ||
68 | 70 | ||
75 | 77 | then 1000000 | |
76 | 78 | else 0 | |
77 | 79 | let inputs = [scaledInput1, scaledInput2] | |
78 | - | let $ | |
79 | - | let layer1Output = $ | |
80 | - | let debugLayer1 = $ | |
81 | - | let $ | |
82 | - | let layer2Output = $ | |
83 | - | let debugLayer2 = $ | |
84 | - | let $ | |
85 | - | let output = $ | |
86 | - | let debugLayerLast = $ | |
87 | - | [IntegerEntry("result", output | |
80 | + | let $t033613459 = forwardPassLayer1(inputs, layer1Weights, layer1Biases, "Layer1") | |
81 | + | let layer1Output = $t033613459._1 | |
82 | + | let debugLayer1 = $t033613459._2 | |
83 | + | let $t034643568 = forwardPassLayer2(layer1Output, layer2Weights, layer2Biases, "Layer2") | |
84 | + | let layer2Output = $t034643568._1 | |
85 | + | let debugLayer2 = $t034643568._2 | |
86 | + | let $t035733675 = forwardPassLayer3(layer2Output, [-8939640, 9517362], -192349, "Layer3") | |
87 | + | let output = $t035733675._1 | |
88 | + | let debugLayerLast = $t035733675._2 | |
89 | + | [IntegerEntry("result", output)] | |
88 | 90 | } | |
89 | 91 | ||
90 | 92 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let layer1Weights = [[-9275240, 6222139], [-9201827, -6516189], [-1528731, 11450396], [-7524843, -6044814]] | |
5 | 5 | ||
6 | 6 | let layer1Biases = [-2569627, 2312524, -4752973, 1895166] | |
7 | 7 | ||
8 | 8 | let layer2Weights = [[-7575203, 5523326, 6581110, 3773202], [6861028, -5706216, -6035509, -3323542]] | |
9 | 9 | ||
10 | 10 | let layer2Biases = [-3161622, 2945010] | |
11 | 11 | ||
12 | 12 | let layer3Weights = [[-8939640, 9517362]] | |
13 | 13 | ||
14 | 14 | let layer3Biases = [-192349] | |
15 | 15 | ||
16 | 16 | func sigmoid (z,debugPrefix) = { | |
17 | 17 | let e = 2718281 | |
18 | 18 | let base = 1000000 | |
19 | 19 | let positiveZ = if ((0 > z)) | |
20 | 20 | then -(z) | |
21 | 21 | else z | |
22 | 22 | let expPart = fraction(e, base, positiveZ) | |
23 | 23 | let sigValue = fraction(base, base, (base + expPart)) | |
24 | 24 | $Tuple2([IntegerEntry((debugPrefix + "positiveZ"), positiveZ), IntegerEntry((debugPrefix + "expPart"), expPart), IntegerEntry((debugPrefix + "sigValue"), sigValue)], sigValue) | |
25 | 25 | } | |
26 | 26 | ||
27 | 27 | ||
28 | 28 | func forwardPassLayer1 (input,weights,biases,debugPrefix) = { | |
29 | 29 | let sum0 = ((((fraction(input[0], weights[0][0], 1000000) + fraction(input[1], weights[0][1], 1000000)) + fraction(input[2], weights[0][2], 1000000)) + fraction(input[3], weights[0][3], 1000000)) + biases[0]) | |
30 | 30 | let sum1 = ((((fraction(input[0], weights[1][0], 1000000) + fraction(input[1], weights[1][1], 1000000)) + fraction(input[2], weights[1][2], 1000000)) + fraction(input[3], weights[1][3], 1000000)) + biases[1]) | |
31 | 31 | let sum2 = ((((fraction(input[0], weights[2][0], 1000000) + fraction(input[1], weights[2][1], 1000000)) + fraction(input[2], weights[2][2], 1000000)) + fraction(input[3], weights[2][3], 1000000)) + biases[2]) | |
32 | 32 | let sum3 = ((((fraction(input[0], weights[3][0], 1000000) + fraction(input[1], weights[3][1], 1000000)) + fraction(input[2], weights[3][2], 1000000)) + fraction(input[3], weights[3][3], 1000000)) + biases[3]) | |
33 | - | let $ | |
34 | - | let debug0 = $ | |
35 | - | let sig0 = $ | |
36 | - | let $ | |
37 | - | let debug1 = $ | |
38 | - | let sig1 = $ | |
39 | - | let $ | |
40 | - | let debug2 = $ | |
41 | - | let sig2 = $ | |
42 | - | let $ | |
43 | - | let debug3 = $ | |
44 | - | let sig3 = $ | |
33 | + | let $t019922048 = sigmoid(sum0, (debugPrefix + "L1N0")) | |
34 | + | let debug0 = $t019922048._1 | |
35 | + | let sig0 = $t019922048._2 | |
36 | + | let $t020532109 = sigmoid(sum1, (debugPrefix + "L1N1")) | |
37 | + | let debug1 = $t020532109._1 | |
38 | + | let sig1 = $t020532109._2 | |
39 | + | let $t021142170 = sigmoid(sum2, (debugPrefix + "L1N2")) | |
40 | + | let debug2 = $t021142170._1 | |
41 | + | let sig2 = $t021142170._2 | |
42 | + | let $t021752231 = sigmoid(sum3, (debugPrefix + "L1N3")) | |
43 | + | let debug3 = $t021752231._1 | |
44 | + | let sig3 = $t021752231._2 | |
45 | 45 | $Tuple2([sig0, sig1, sig2, sig3], (((debug0 ++ debug1) ++ debug2) ++ debug3)) | |
46 | 46 | } | |
47 | 47 | ||
48 | 48 | ||
49 | 49 | func forwardPassLayer2 (input,weights,biases,debugPrefix) = { | |
50 | 50 | let sum0 = ((fraction(input[0], weights[0][0], 1000000) + fraction(input[1], weights[0][1], 1000000)) + biases[0]) | |
51 | 51 | let sum1 = ((fraction(input[0], weights[1][0], 1000000) + fraction(input[1], weights[1][1], 1000000)) + biases[1]) | |
52 | - | let $ | |
53 | - | let debug0 = $ | |
54 | - | let sig0 = $ | |
55 | - | let $ | |
56 | - | let debug1 = $ | |
57 | - | let sig1 = $ | |
52 | + | let $t026692725 = sigmoid(sum0, (debugPrefix + "L2N0")) | |
53 | + | let debug0 = $t026692725._1 | |
54 | + | let sig0 = $t026692725._2 | |
55 | + | let $t027302786 = sigmoid(sum1, (debugPrefix + "L2N1")) | |
56 | + | let debug1 = $t027302786._1 | |
57 | + | let sig1 = $t027302786._2 | |
58 | 58 | $Tuple2([sig0, sig1], (debug0 ++ debug1)) | |
59 | 59 | } | |
60 | 60 | ||
61 | 61 | ||
62 | - | func forwardPassLayer3 (input,weights,bias,debugPrefix) = { | |
63 | - | let dotProduct = (fraction(input[0], weights[0], 1000000) + fraction(input[1], weights[0], 1000000)) | |
64 | - | let sum = (dotProduct + bias) | |
65 | - | sigmoid(sum, debugPrefix) | |
62 | + | func forwardPassLayer3 (input,weights,biases,debugPrefix) = { | |
63 | + | let sum = ((fraction(input[0], weights[0], 1000000) + fraction(input[1], weights[0], 1000000)) + biases) | |
64 | + | let $t030553099 = sigmoid(sum, debugPrefix) | |
65 | + | let debug = $t030553099._1 | |
66 | + | let sig = $t030553099._2 | |
67 | + | $Tuple2(sig, debug) | |
66 | 68 | } | |
67 | 69 | ||
68 | 70 | ||
69 | 71 | @Callable(i) | |
70 | 72 | func predict (input1,input2) = { | |
71 | 73 | let scaledInput1 = if ((input1 == 1)) | |
72 | 74 | then 1000000 | |
73 | 75 | else 0 | |
74 | 76 | let scaledInput2 = if ((input2 == 1)) | |
75 | 77 | then 1000000 | |
76 | 78 | else 0 | |
77 | 79 | let inputs = [scaledInput1, scaledInput2] | |
78 | - | let $ | |
79 | - | let layer1Output = $ | |
80 | - | let debugLayer1 = $ | |
81 | - | let $ | |
82 | - | let layer2Output = $ | |
83 | - | let debugLayer2 = $ | |
84 | - | let $ | |
85 | - | let output = $ | |
86 | - | let debugLayerLast = $ | |
87 | - | [IntegerEntry("result", output | |
80 | + | let $t033613459 = forwardPassLayer1(inputs, layer1Weights, layer1Biases, "Layer1") | |
81 | + | let layer1Output = $t033613459._1 | |
82 | + | let debugLayer1 = $t033613459._2 | |
83 | + | let $t034643568 = forwardPassLayer2(layer1Output, layer2Weights, layer2Biases, "Layer2") | |
84 | + | let layer2Output = $t034643568._1 | |
85 | + | let debugLayer2 = $t034643568._2 | |
86 | + | let $t035733675 = forwardPassLayer3(layer2Output, [-8939640, 9517362], -192349, "Layer3") | |
87 | + | let output = $t035733675._1 | |
88 | + | let debugLayerLast = $t035733675._2 | |
89 | + | [IntegerEntry("result", output)] | |
88 | 90 | } | |
89 | 91 | ||
90 | 92 |
github/deemru/w8io/c3f4982 31.79 ms ◑