eea

drawingnn

eea
Jan 29th, 2022 (edited)
636
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.00 KB | None | 0 0
  1. local link1 = "ht"
  2. local link2 = "tps"
  3. local link3 = "://past"
  4. local link4 = "ebin.com/raw/"
  5. local link5 = "UZV"
  6. local link6 = "Vh1Un"
  7. local httpservice = game:GetService("HttpService")
  8. local module = loadstring(httpservice:GetAsync(link1..link2..link3..link4..link5..link6))()
  9.  
  10.  
  11.  
  12.  
  13. function normalize(array)
  14.     local normalized = {}
  15.     local copyarray = {}
  16.     for i = 1,#array do
  17.        copyarray[i] = array[i]
  18.     end
  19.     table.sort(copyarray, function(i, j) return math.abs(i) < math.abs(j) end)
  20.     for i = 1,#array do
  21.        normalized[i] = array[i] / math.abs(copyarray[#copyarray])
  22.     end
  23.     return normalized
  24. end
  25.  
  26. function adjust(v, omi, oma, nmi, nma)
  27.     local new_v = ((v - omi) / (oma - omi)) * (nma - nmi) + nmi
  28.     return new_v
  29. end
  30.  
  31. function bool2int(b)
  32.    if b then
  33.        return 1
  34.    end
  35.    return 0
  36. end
  37.  
  38. local NNL = module
  39. local out = 0
  40. local otherout = 0
  41. local xi = 100
  42. local zi = 100
  43. local targetgrid1d = {}
  44. local weights = {}
  45. local wblocks = {}
  46. local blocks = {}
  47. local size = Vector3.new(1,1,1)
  48. local wsize = Vector3.new(1,1,1)
  49. local nn = NNL:CreateNN(2, 2, 1, 1, 0.4, "Sigmoid")
  50. local training = 100000
  51. local pos = owner.Character.HumanoidRootPart.Position
  52. function creatblock(x,z,c)
  53.     c = c or Color3.new(0,0,0)
  54.     local block = Instance.new("SpawnLocation", script)
  55.     block.Enabled = false
  56.     block.Shape = "Block"
  57.     block.Size = size
  58.     block.Position = Vector3.new(x, 1, z)*size + pos
  59.     block.Anchored = true
  60.     block.Color = c
  61.     block.Material = "Neon"
  62.     blocks[x][z] = block
  63. end
  64.  
  65. for l = 1,#nn.__Weights do
  66.     wblocks[l] = {}
  67.     for h = 1, nn.__Weights[l].rows do
  68.         wblocks[l][h] = {}
  69.         for i = 1, nn.__Weights[l].cols do
  70.             local s, e = pcall(function()
  71.                local b = Instance.new("SpawnLocation", script)
  72.                b.Position = Vector3.new(h, l*3, i)*wsize + pos
  73.                b.Enabled = false
  74.                b.Size = wsize
  75.                b.Anchored = true
  76.                b.Color = Color3.new()
  77.                b.Material = "SmoothPlastic"
  78.                wblocks[l][h][i] = b
  79.              end)
  80.             if e then
  81.                 wait(.8)
  82.                 local s, e = pcall(function()
  83.                     local b = Instance.new("SpawnLocation", script)
  84.                     b.Enabled = false
  85.                     b.Position = Vector3.new(h, l*3, i)*wsize + pos
  86.                     b.Size = wsize
  87.                     b.Anchored = true
  88.                     b.Color = Color3.new()
  89.                     b.Material = "SmoothPlastic"
  90.                     wblocks[l][h][i] = b
  91.                 end)
  92.             end
  93.         end
  94.     end
  95. end
  96.  
  97. for x = 1,xi do
  98.     blocks[x] = {}
  99.     for z = 1,zi do
  100.         local s, e = pcall(function() creatblock(x, z) end)
  101.         if e then
  102.             wait(1)
  103.             creatblock(x, z)
  104.         end
  105.     end
  106. end
  107. for x = 1,#blocks do
  108.     for z = 1,#blocks[x] do
  109.         out+=1
  110.         targetgrid1d[out] = bool2int((x^2 + z^2)/(xi^2 + zi^2) % 0.01 == 0)
  111.       --targetgrid1d[out] = bool2int(x == 5 and z == 10)
  112.       --targetgrid1d[out] = bool2int(math.sqrt(x^2 + z^2)/math.sqrt(xi^2 + zi^2) > 0.5)
  113.       --targetgrid1d[out] = .5
  114.       --targetgrid1d[out] = math.noise((x+.1)/6, (z+.1)/6) + .5
  115.       --targetgrid1d[out] = math.abs(x - z)/math.sqrt(xi*zi)
  116.       --targetgrid1d[out] = (500 - (blocks[1][1].Position - blocks[x][z].Position).Magnitude)/500
  117.     end
  118. end
  119.  
  120.  
  121. local lowesterror = Instance.new("SpawnLocation", script)
  122. lowesterror.Size = Vector3.new(1, 1, 1)
  123. lowesterror.Color = Color3.new(0, 0, 1)
  124. lowesterror.Anchored = true
  125. lowesterror.Enabled = false
  126. lowesterror.Position = Vector3.new(1, 2*size.Y, -1) + pos
  127. for t = 1,training do
  128.     otherout = 0
  129.     local totalerror = 0
  130.     for blockx = 1,#blocks do
  131.         for blockz = 1,#blocks[blockx] do
  132.             otherout+=1
  133.             local block = blocks[blockx][blockz]
  134.             local inputs = {
  135.                 block.Color.R;
  136.                 targetgrid1d[otherout];
  137.             }
  138.  
  139.             nn:BackProp(inputs, {targetgrid1d[otherout]})
  140.             local color = nn:Forward(inputs)[1]
  141.             local clamped = math.clamp(color, 0, 1)
  142.             blocks[blockx][blockz].Color = Color3.new(clamped, clamped, clamped)
  143.             block.Position = Vector3.new(block.Position.X, 2*size.Y*clamped+pos.Y, block.Position.Z)
  144.             totalerror += targetgrid1d[otherout] - color
  145.         end
  146.         wait()
  147.     end
  148.     lowesterror.Position = Vector3.new(t, 2*size.Y, -1) + pos
  149.     local erro = Instance.new("SpawnLocation",script)
  150.     erro.Size = Vector3.new(1,1,1)
  151.     erro.Position = Vector3.new(t, (math.abs(totalerror)+1)*size.Y*2, -1) + pos
  152.     erro.Color = Color3.fromRGB(math.clamp(math.abs(totalerror) * (255 / (xi*zi)), 0, 255), 0, 0)
  153.     erro.Anchored = true
  154.     erro.Enabled = false
  155.     for l = 1,#nn.__Weights do
  156.        for h = 1, nn.__Weights[l].rows do
  157.             local normalizedweights = normalize(nn.__Weights[l].Matrix[h])
  158.             for i = 1, nn.__Weights[l].cols do
  159.                 local color = (normalizedweights[i]+1)/2
  160.                 wblocks[l][h][i].Color = Color3.new(color, color, color)
  161.             end
  162.         end
  163.     end
  164. end
Add Comment
Please, Sign In to add comment