tx · CSKB8iCwwXfruTvzLC9tm5jdhrri1eMoeLApwdfSEHCE 3N3n75UqB8G1GKmXFr4zPhKCjGcqJPRSuJY: -0.01000000 Waves 2024.05.26 19:19 [3123188] smart account 3N3n75UqB8G1GKmXFr4zPhKCjGcqJPRSuJY > SELF 0.00000000 Waves
{ "type": 13, "id": "CSKB8iCwwXfruTvzLC9tm5jdhrri1eMoeLApwdfSEHCE", "fee": 1000000, "feeAssetId": null, "timestamp": 1716740411880, "version": 2, "chainId": 84, "sender": "3N3n75UqB8G1GKmXFr4zPhKCjGcqJPRSuJY", "senderPublicKey": "2AWdnJuBMzufXSjTvzVcawBQQhnhF1iXR6QNVgwn33oc", "proofs": [ "4ZZ9x1GumaFS7MJ9S1NGPoBN9X4xAmfEuCNagn9YkKBgaSMmpYYDeVarG2YLBwo1MyVKRaRi59MdVCWAMikYCWtb" ], "script": "base64:BwIICAISBAoCAQEHAA93ZWlnaHRzX2xheWVyXzEJAMwIAgkAzAgCAJHVAwkAzAgCAKnVAwUDbmlsCQDMCAIJAMwIAgDLwwIJAMwIAgDRwwIFA25pbAUDbmlsAA5iaWFzZXNfbGF5ZXJfMQkAzAgCAM+1/v///////wEJAMwIAgC1j/z///////8BBQNuaWwAD3dlaWdodHNfbGF5ZXJfMgkAzAgCCQDMCAIA4IoFCQDMCAIAjsP6////////AQUDbmlsBQNuaWwADmJpYXNlc19sYXllcl8yCQDMCAIAm9b9////////AQUDbmlsAQ5saW5lYXJfZm9yd2FyZAMFaW5wdXQHd2VpZ2h0cwZiaWFzZXMEDXdlaWdodGVkX3N1bTEJAGQCCQBpAgkAZAIJAGgCCQCRAwIFBWlucHV0AAAJAJEDAgkAkQMCBQd3ZWlnaHRzAAAAAAkAaAIJAJEDAgUFaW5wdXQAAQkAkQMCCQCRAwIFB3dlaWdodHMAAAABAJBOCQCRAwIFBmJpYXNlcwAABA13ZWlnaHRlZF9zdW0yCQBkAgkAaQIJAGQCCQBoAgkAkQMCBQVpbnB1dAAACQCRAwIJAJEDAgUHd2VpZ2h0cwABAAAJAGgCCQCRAwIFBWlucHV0AAEJAJEDAgkAkQMCBQd3ZWlnaHRzAAEAAQCQTgkAkQMCBQZiaWFzZXMAAQkAzAgCBQ13ZWlnaHRlZF9zdW0xCQDMCAIFDXdlaWdodGVkX3N1bTIFA25pbAEHc2lnbW9pZAEFaW5wdXQDCQBmAgDwsf////////8BBQVpbnB1dAAAAwkAZgIFBWlucHV0AJBOAJBOCQBkAgCIJwkAaQIFBWlucHV0AAIBEnNpZ21vaWRfYWN0aXZhdGlvbgEGaW5wdXRzCQDMCAIJAQdzaWdtb2lkAQkAkQMCBQZpbnB1dHMAAAkAzAgCCQEHc2lnbW9pZAEJAJEDAgUGaW5wdXRzAAEFA25pbAEBaQEHcHJlZGljdAICeDECeDIECXgxX3NjYWxlZAkAaAIFAngxAJBOBAl4Ml9zY2FsZWQJAGgCBQJ4MgCQTgQGaW5wdXRzCQDMCAIFCXgxX3NjYWxlZAkAzAgCBQl4Ml9zY2FsZWQFA25pbAQCejEJAQ5saW5lYXJfZm9yd2FyZAMFBmlucHV0cwUPd2VpZ2h0c19sYXllcl8xBQ5iaWFzZXNfbGF5ZXJfMQQCYTEJARJzaWdtb2lkX2FjdGl2YXRpb24BBQJ6MQQCejIJAQ5saW5lYXJfZm9yd2FyZAMFAmExBQ93ZWlnaHRzX2xheWVyXzIFDmJpYXNlc19sYXllcl8yBAJhMgkBB3NpZ21vaWQBCQCRAwIFAnoyAAAEBnJlc3VsdAkAaQIFAmEyAJBOBA1kZWJ1Z19vdXRwdXRzCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgpkZWJ1Z196MV8xCQCRAwIFAnoxAAAJAMwIAgkBDEludGVnZXJFbnRyeQICCmRlYnVnX2ExXzEJAJEDAgUCYTEAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgIKZGVidWdfejFfMgkAkQMCBQJ6MQABCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgpkZWJ1Z19hMV8yCQCRAwIFAmExAAEJAMwIAgkBDEludGVnZXJFbnRyeQICCmRlYnVnX3oyXzEJAJEDAgUCejIAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgIIZGVidWdfYTIFAmEyCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgxkZWJ1Z19yZXN1bHQFBnJlc3VsdAUDbmlsCQCUCgIFDWRlYnVnX291dHB1dHMFBnJlc3VsdABwHcxQ", "height": 3123188, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5iNUFVUiuLxLyD9zsZtxLmY1BS5THCkkmFMT6kNw969S Next: 8bA5jMEQ6Vm9Rh4z9C9TER3GXZ2QKwTuAjWySbzGzVBv Diff:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 7 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let weights_layer_1 = [[ | |
4 | + | let weights_layer_1 = [[60049, 60073], [41419, 41425]] | |
5 | 5 | ||
6 | - | let biases_layer_1 = [-25905, - | |
6 | + | let biases_layer_1 = [-25905, -63563] | |
7 | 7 | ||
8 | - | let weights_layer_2 = [[ | |
8 | + | let weights_layer_2 = [[83296, -89714]] | |
9 | 9 | ||
10 | - | let biases_layer_2 = [- | |
10 | + | let biases_layer_2 = [-38117] | |
11 | 11 | ||
12 | 12 | func linear_forward (input,weights,biases) = { | |
13 | 13 | let weighted_sum1 = ((((input[0] * weights[0][0]) + (input[1] * weights[0][1])) / 10000) + biases[0]) | |
28 | 28 | ||
29 | 29 | @Callable(i) | |
30 | 30 | func predict (x1,x2) = { | |
31 | - | let inputs = [(x1 * 10000), (x2 * 10000)] | |
31 | + | let x1_scaled = (x1 * 10000) | |
32 | + | let x2_scaled = (x2 * 10000) | |
33 | + | let inputs = [x1_scaled, x2_scaled] | |
32 | 34 | let z1 = linear_forward(inputs, weights_layer_1, biases_layer_1) | |
33 | 35 | let a1 = sigmoid_activation(z1) | |
34 | - | let debug_z1_1 = IntegerEntry("debug_z1_1", z1[0]) | |
35 | - | let debug_z1_2 = IntegerEntry("debug_z1_2", z1[1]) | |
36 | - | let debug_a1_1 = IntegerEntry("debug_a1_1", a1[0]) | |
37 | - | let debug_a1_2 = IntegerEntry("debug_a1_2", a1[1]) | |
38 | - | let z2 = ((((a1[0] * weights_layer_2[0][0]) + (a1[1] * weights_layer_2[0][1])) / 10000) + biases_layer_2[0]) | |
39 | - | let a2 = sigmoid(z2) | |
36 | + | let z2 = linear_forward(a1, weights_layer_2, biases_layer_2) | |
37 | + | let a2 = sigmoid(z2[0]) | |
40 | 38 | let result = (a2 / 10000) | |
41 | - | let debug_z2 = IntegerEntry("debug_z2", z2) | |
42 | - | let debug_a2 = IntegerEntry("debug_a2", a2) | |
43 | - | let debug_result = IntegerEntry("debug_result", result) | |
44 | - | $Tuple2([debug_z1_1, debug_z1_2, debug_a1_1, debug_a1_2, debug_z2, debug_a2, debug_result], result) | |
39 | + | let debug_outputs = [IntegerEntry("debug_z1_1", z1[0]), IntegerEntry("debug_a1_1", a1[0]), IntegerEntry("debug_z1_2", z1[1]), IntegerEntry("debug_a1_2", a1[1]), IntegerEntry("debug_z2_1", z2[0]), IntegerEntry("debug_a2", a2), IntegerEntry("debug_result", result)] | |
40 | + | $Tuple2(debug_outputs, result) | |
45 | 41 | } | |
46 | 42 | ||
47 | 43 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 7 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let weights_layer_1 = [[ | |
4 | + | let weights_layer_1 = [[60049, 60073], [41419, 41425]] | |
5 | 5 | ||
6 | - | let biases_layer_1 = [-25905, - | |
6 | + | let biases_layer_1 = [-25905, -63563] | |
7 | 7 | ||
8 | - | let weights_layer_2 = [[ | |
8 | + | let weights_layer_2 = [[83296, -89714]] | |
9 | 9 | ||
10 | - | let biases_layer_2 = [- | |
10 | + | let biases_layer_2 = [-38117] | |
11 | 11 | ||
12 | 12 | func linear_forward (input,weights,biases) = { | |
13 | 13 | let weighted_sum1 = ((((input[0] * weights[0][0]) + (input[1] * weights[0][1])) / 10000) + biases[0]) | |
14 | 14 | let weighted_sum2 = ((((input[0] * weights[1][0]) + (input[1] * weights[1][1])) / 10000) + biases[1]) | |
15 | 15 | [weighted_sum1, weighted_sum2] | |
16 | 16 | } | |
17 | 17 | ||
18 | 18 | ||
19 | 19 | func sigmoid (input) = if ((-10000 > input)) | |
20 | 20 | then 0 | |
21 | 21 | else if ((input > 10000)) | |
22 | 22 | then 10000 | |
23 | 23 | else (5000 + (input / 2)) | |
24 | 24 | ||
25 | 25 | ||
26 | 26 | func sigmoid_activation (inputs) = [sigmoid(inputs[0]), sigmoid(inputs[1])] | |
27 | 27 | ||
28 | 28 | ||
29 | 29 | @Callable(i) | |
30 | 30 | func predict (x1,x2) = { | |
31 | - | let inputs = [(x1 * 10000), (x2 * 10000)] | |
31 | + | let x1_scaled = (x1 * 10000) | |
32 | + | let x2_scaled = (x2 * 10000) | |
33 | + | let inputs = [x1_scaled, x2_scaled] | |
32 | 34 | let z1 = linear_forward(inputs, weights_layer_1, biases_layer_1) | |
33 | 35 | let a1 = sigmoid_activation(z1) | |
34 | - | let debug_z1_1 = IntegerEntry("debug_z1_1", z1[0]) | |
35 | - | let debug_z1_2 = IntegerEntry("debug_z1_2", z1[1]) | |
36 | - | let debug_a1_1 = IntegerEntry("debug_a1_1", a1[0]) | |
37 | - | let debug_a1_2 = IntegerEntry("debug_a1_2", a1[1]) | |
38 | - | let z2 = ((((a1[0] * weights_layer_2[0][0]) + (a1[1] * weights_layer_2[0][1])) / 10000) + biases_layer_2[0]) | |
39 | - | let a2 = sigmoid(z2) | |
36 | + | let z2 = linear_forward(a1, weights_layer_2, biases_layer_2) | |
37 | + | let a2 = sigmoid(z2[0]) | |
40 | 38 | let result = (a2 / 10000) | |
41 | - | let debug_z2 = IntegerEntry("debug_z2", z2) | |
42 | - | let debug_a2 = IntegerEntry("debug_a2", a2) | |
43 | - | let debug_result = IntegerEntry("debug_result", result) | |
44 | - | $Tuple2([debug_z1_1, debug_z1_2, debug_a1_1, debug_a1_2, debug_z2, debug_a2, debug_result], result) | |
39 | + | let debug_outputs = [IntegerEntry("debug_z1_1", z1[0]), IntegerEntry("debug_a1_1", a1[0]), IntegerEntry("debug_z1_2", z1[1]), IntegerEntry("debug_a1_2", a1[1]), IntegerEntry("debug_z2_1", z2[0]), IntegerEntry("debug_a2", a2), IntegerEntry("debug_result", result)] | |
40 | + | $Tuple2(debug_outputs, result) | |
45 | 41 | } | |
46 | 42 | ||
47 | 43 |
github/deemru/w8io/169f3d6 33.90 ms ◑