Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local create=require(script.Parent.ModuleScript)
- local folder=workspace:FindFirstChild("Folder")or Instance.new("Folder",workspace)
- local input,output={},{}
- local inputs=11
- for n=0,inputs-1 do local i=n/(inputs-1)input[#input+1],output[#output+1]=i,i^2 end
- local net=create({1,1},function(a,b)return (b-a)^2/2 end,function(a,b)return b-a end)
- do
- local folder=Instance.new("Folder",workspace)
- local prev
- for i=1,inputs do
- local out=output[i]
- local p=Vector3.new(input[i],0,out)*100
- if prev then
- local e=Instance.new("Part")
- e.Anchored,e.CanCollide=true,false
- e.TopSurface,e.BottomSurface="Smooth","Smooth"
- e.CFrame=CFrame.new((prev+p)/2,p)
- e.Size=Vector3.new(1,1,(prev-p).magnitude)
- e.BrickColor=BrickColor.Blue()
- e.Parent=folder
- end
- prev=p
- end
- end
- local function display()
- folder:ClearAllChildren()
- local prev
- for i=1,inputs do
- local out=net.input(input[i])
- local p=Vector3.new(input[i],0,out)*100
- if prev then
- local e=Instance.new("Part")
- e.Anchored,e.CanCollide=true,false
- e.TopSurface,e.BottomSurface="Smooth","Smooth"
- e.CFrame=CFrame.new((prev+p)/2,p)
- e.Size=Vector3.new(1,1,(prev-p).magnitude)
- e.BrickColor=BrickColor.Red()
- e.Parent=folder
- end
- prev=p
- end
- end
- display()
- while wait()do
- for i=1,inputs do
- local err=net.learn({input[i]},{output[i]},.001,.1)
- if math.random(1000)==1 then print(err)end
- display()
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment