Created
December 1, 2018 09:12
-
-
Save kailaix/ff57a1cd742f4b0e65be72523f581916 to your computer and use it in GitHub Desktop.
1D
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# Neural Network For Solving 1D Poisson Problem" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "We solve\n", | |
| "$$u_{xx} = 1$$\n", | |
| "$$u(0)=u(1)=0$$\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 15, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "┌ Warning: No working GUI backend found for matplotlib\n", | |
| "└ @ PyPlot ~/.julia/packages/PyPlot/fZuOQ/src/init.jl:160\n", | |
| "WARNING: using PyPlot.axes in module Main conflicts with an existing identifier.\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "using TensorFlow\n", | |
| "using PyPlot" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 2, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<Tensor gradients/AddN_7:1 shape=unknown dtype=Float32>" | |
| ] | |
| }, | |
| "execution_count": 2, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "x = placeholder(Float32,shape=[-1,1])\n", | |
| "\n", | |
| "W1 = Variable(randn(Float32,1,128))\n", | |
| "b1 = Variable(randn(Float32,128))\n", | |
| "net = x*W1 + b1\n", | |
| "net = nn.sigmoid(net)\n", | |
| "for i = 1:3\n", | |
| " W1 = Variable(randn(Float32,128, 128))\n", | |
| " b1 = Variable(randn(Float32,128))\n", | |
| " net = net*W1 + b1\n", | |
| " net = nn.sigmoid(net)\n", | |
| "end\n", | |
| "W1 = Variable(randn(Float32,128,1))\n", | |
| "b1 = Variable(randn(Float32,1))\n", | |
| "z = net*W1 + b1\n", | |
| "\n", | |
| "u = x .* (1-x) .* z\n", | |
| "Δu = gradients(gradients(u, x), x)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 3, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<Tensor reduce:1 shape=() dtype=Float32>" | |
| ] | |
| }, | |
| "execution_count": 3, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "loss = reduce_sum((Δu .- 1.0f0).^2)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 16, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "Session(Ptr{Nothing} @0x00002aab08b8df10)" | |
| ] | |
| }, | |
| "execution_count": 16, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "sess = Session()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 17, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "train_step = train.minimize(train.GradientDescentOptimizer(.00001), loss)\n", | |
| "run(sess, global_variables_initializer())" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 18, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [ | |
| { | |
| "ename": "MethodError", | |
| "evalue": "MethodError: no method matching strides(::Base.ReshapedArray{Float64,2,LinRange{Float64},Tuple{}})\nClosest candidates are:\n strides(!Matched::SubArray) at subarray.jl:264\n strides(!Matched::Base.CodeUnits) at strings/basic.jl:696\n strides(!Matched::PermutedDimsArray{T,N,perm,iperm,AA} where AA<:AbstractArray where iperm) where {T, N, perm} at permuteddimsarray.jl:62\n ...", | |
| "output_type": "error", | |
| "traceback": [ | |
| "MethodError: no method matching strides(::Base.ReshapedArray{Float64,2,LinRange{Float64},Tuple{}})\nClosest candidates are:\n strides(!Matched::SubArray) at subarray.jl:264\n strides(!Matched::Base.CodeUnits) at strings/basic.jl:696\n strides(!Matched::PermutedDimsArray{T,N,perm,iperm,AA} where AA<:AbstractArray where iperm) where {T, N, perm} at permuteddimsarray.jl:62\n ...", | |
| "", | |
| "Stacktrace:", | |
| " [1] stride(::Base.ReshapedArray{Float64,2,LinRange{Float64},Tuple{}}, ::Int64) at ./abstractarray.jl:342", | |
| " [2] array2py(::Base.ReshapedArray{Float64,2,LinRange{Float64},Tuple{}}, ::Int64, ::Int64) at /home/kailaix/.julia/packages/PyCall/0jMpb/src/conversions.jl:305", | |
| " [3] array2py(::Base.ReshapedArray{Float64,2,LinRange{Float64},Tuple{}}) at /home/kailaix/.julia/packages/PyCall/0jMpb/src/conversions.jl:325", | |
| " [4] Type at /home/kailaix/.julia/packages/PyCall/0jMpb/src/conversions.jl:327 [inlined]", | |
| " [5] macro expansion at /home/kailaix/.julia/packages/PyCall/0jMpb/src/exception.jl:84 [inlined]", | |
| " [6] _pycall!(::PyCall.PyObject, ::PyCall.PyObject, ::Tuple{Base.ReshapedArray{Float64,2,LinRange{Float64},Tuple{}},Array{Float32,2}}, ::Int64, ::Ptr{Nothing}) at /home/kailaix/.julia/packages/PyCall/0jMpb/src/pyfncall.jl:21", | |
| " [7] _pycall!(::PyCall.PyObject, ::PyCall.PyObject, ::Tuple{Base.ReshapedArray{Float64,2,LinRange{Float64},Tuple{}},Array{Float32,2}}, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /home/kailaix/.julia/packages/PyCall/0jMpb/src/pyfncall.jl:11", | |
| " [8] #pycall#88(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::Function, ::PyCall.PyObject, ::Type{PyCall.PyAny}, ::Base.ReshapedArray{Float64,2,LinRange{Float64},Tuple{}}, ::Vararg{Any,N} where N) at /home/kailaix/.julia/packages/PyCall/0jMpb/src/pyfncall.jl:86", | |
| " [9] pycall(::PyCall.PyObject, ::Type{PyCall.PyAny}, ::Base.ReshapedArray{Float64,2,LinRange{Float64},Tuple{}}, ::Vararg{Any,N} where N) at /home/kailaix/.julia/packages/PyCall/0jMpb/src/pyfncall.jl:86", | |
| " [10] #plot#85(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::Function, ::Base.ReshapedArray{Float64,2,LinRange{Float64},Tuple{}}, ::Vararg{Any,N} where N) at /home/kailaix/.julia/packages/PyPlot/fZuOQ/src/PyPlot.jl:179", | |
| " [11] plot(::Base.ReshapedArray{Float64,2,LinRange{Float64},Tuple{}}, ::Vararg{Any,N} where N) at /home/kailaix/.julia/packages/PyPlot/fZuOQ/src/PyPlot.jl:176", | |
| " [12] top-level scope at In[18]:14" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "X = rand(Float32, 1000,1)\n", | |
| "XX = LinRange(0,1,50)\n", | |
| "XX = reshape(XX, 50, 1)\n", | |
| "Los = Float64[]\n", | |
| "for i in 1:500\n", | |
| " run(sess, train_step, Dict(x=>X))\n", | |
| " los = sqrt(run(sess, loss, Dict(x=>XX)))\n", | |
| " push!(Los, los)\n", | |
| "end\n", | |
| "U = run(sess, u, Dict(x=>XX))" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 22, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "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cnNzdfXVV+umm25SY2OjFi5cqL//+7/nPKfQ4cOHdfr0aVVXVys7O1vZ2dnav3+//uEf/kHZ2dkqLS3lXNukoKBA8+fP19tvv532n9EEmcvIzc1VdXW19u7dG7N+7969WrZsmUtVTT6VlZWaOXNmzHnu6+vT/v37rfO8dOlSBQIB/epXv7L2eeONNxQIBPhdXGSaptauXatdu3Zp3759qqysjNleXV2tnJycmPPs9/t17NixmPN87Ngx+f1+a58XX3xRXq9X1dXVzryRDGWapkKhEOc5he688061tLTo6NGj1tdNN92kL37xi9b3nGt7hEIh/e53v1NZWVn6f0bbOpR4Eti5c6eZk5Nj/tM//ZP529/+1ly3bp1ZUFBgtrW1uV1aRjl//rx55MgR88iRI6Ykc8uWLeaRI0fM9957zzRN09y8ebPp8/nMXbt2mS0tLebnP/95s6yszOzq6rKO8elPf9pcsGCB+dprr5mvvfaaOX/+fPOee+5x6y2lnb/8y780fT6f+ctf/tL0+/3WV09Pj7XPQw89ZM6aNcv8xS9+Yb755pvmHXfcYS5cuNAcGBgwTdM0BwYGzKqqKvPOO+8033zzTfMXv/iFOWvWLHPt2rVuva201NDQYB44cMBsbW01f/Ob35gbNmwws7KyzBdffNE0Tc6znaLvWjJNznWqPPLII+Yvf/lL89133zVff/1185577jELCwuta106f0YTZMbgu9/9rjlnzhwzNzfXXLRokXU7K8bupZdeMiWN+FqzZo1pmkO3933jG98wZ86caXq9XvO2224zW1paYo5x5swZ84tf/KJZWFhoFhYWml/84hfNDz/80IV3k57inV9J5g9/+ENrn97eXnPt2rVmcXGxmZ+fb95zzz1me3t7zHHee+898+677zbz8/PN4uJic+3ateaFCxccfjfp7c///M+tz4Tp06ebd955pxViTJPzbKfhQYZznRr19fVmWVmZmZOTY5aXl5t1dXXmW2+9ZW1P589owzRN0942HwAAAHswRgYAAGQsggwAAMhYBBkAAJCxCDIAACBjEWQAAEDGIsgAAICMRZABAAAZiyADAAAyFkEGAABkLIIMAADIWAQZAACQsf4PUWUU7aHGz0UAAAAASUVORK5CYII=", | |
| "text/plain": [ | |
| "Figure(PyObject <matplotlib.figure.Figure object at 0x2aabd1cd2c88>)" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| }, | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "1-element Array{PyCall.PyObject,1}:\n", | |
| " PyObject <matplotlib.lines.Line2D object at 0x2aabd1d54c88>" | |
| ] | |
| }, | |
| "execution_count": 22, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "figure()\n", | |
| "semilogy(1:500, Los, \".-\")" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 28, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "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", | |
| "text/plain": [ | |
| "Figure(PyObject <matplotlib.figure.Figure object at 0x2aabd40535c0>)" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| }, | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "1-element Array{PyCall.PyObject,1}:\n", | |
| " PyObject <matplotlib.lines.Line2D object at 0x2aabd4040f28>" | |
| ] | |
| }, | |
| "execution_count": 28, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "figure()\n", | |
| "plot(Array{Float32}(XX), U[:])" | |
| ] | |
| } | |
| ], | |
| "metadata": { | |
| "kernelspec": { | |
| "display_name": "Julia 1.0.2", | |
| "language": "julia", | |
| "name": "julia-1.0" | |
| }, | |
| "language_info": { | |
| "file_extension": ".jl", | |
| "mimetype": "application/julia", | |
| "name": "julia", | |
| "version": "1.0.2" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 2 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment