{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "ENV[\"PYTHONPATH\"] = joinpath(Pkg.dir(\"Qwt\"), \"src\", \"python\");" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO: Recompiling stale cache file /Users/tom/.julia/lib/v0.4/Plots.ji for module Plots.\n" ] }, { "data": { "text/plain": [ "gridxy (generic function with 1 method)" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "using Plots; qwt()\n", "default(size=(500,300), leg=false)\n", "\n", "# creates x/y vectors which can define a grid in a zig-zag pattern\n", "function gridxy(lim, n::Int)\n", " xs = linspace(lim..., n)\n", " xypairs = vec([(x,y) for x in vcat(xs,reverse(xs)), y in xs])\n", " Plots.unzip(xypairs)\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# The problem... can we classify the functions?" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "target (generic function with 1 method)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# these are the functions we want to classify\n", "scalar = 6 # larger is harder... start with 3\n", "f1(x) = 0.6sin(scalar * x) + 0.1\n", "f2(x) = f1(x) - 0.2\n", "\n", "# our target function is ∈ {-1,1}\n", "target(f) = f == f1 ? 1.0 : -1.0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# On to the fun..." ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "Plot{Plots.QwtPackage() n=4}" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# pick the plotting limits\n", "lim = (-1,1)\n", "funcs = [f1, f2]\n", "n = 40\n", "gridx, gridy = gridxy(lim, n)\n", "default(xlim = lim, ylim = lim)\n", "\n", "function initialize_plot(funcs, lim, gridx, gridy; kw...)\n", " # show the grid\n", " plot([gridx gridy], [gridy gridx], c=:black; kw...)\n", "\n", " # show the funcs\n", " plot!(funcs, lim..., l=(4,[:blue :red]))\n", "end\n", "\n", "# kick off an animation... we can save frames whenever we want, lets save the starting frame\n", "function initialize_animation()\n", " anim = Animation()\n", " frame(anim)\n", " anim\n", "end\n", "\n", "# lets see what we're dealing with...\n", "p = initialize_plot(funcs, lim, gridx, gridy)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# That looks tricky... lets build a neural net!" ] }, { "cell_type": "code", "execution_count": 86, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "NeuralNet{\n", " params: NetParams{OnlineAI.AdamModel(1.0e-8,0.0003,0.9,0.999,1.0e-6) NoDropout OnlineAI.L2CostModel()}\n", " solverParams: OnlineAI.SolverParams(1000,1000,10000,-1,[:x,:xhat,:y,:Σ,:a],100,1.0e-5,OnlineAI.donothing)\n", " layers:\n", " NormalizedLayer{2=>100 OnlineAI.TanhActivation() p=1.0 ‖δΣ‖₁=0.0 ‖δy‖₁=0.0 }\n", " NormalizedLayer{100=>100 OnlineAI.TanhActivation() p=1.0 ‖δΣ‖₁=0.0 ‖δy‖₁=0.0 }\n", " NormalizedLayer{100=>2 OnlineAI.TanhActivation() p=1.0 ‖δΣ‖₁=0.0 ‖δy‖₁=0.0 }\n", " NormalizedLayer{2=>1 OnlineAI.TanhActivation() p=1.0 ‖δΣ‖₁=0.0 ‖δy‖₁=0.0 }\n", "}\n" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "using OnlineAI\n", "\n", "# gradientModel = SGDModel(η=1e-4, μ=0.8, λ=0)\n", "# gradientModel = AdagradModel(η=1e-1)\n", "# gradientModel = AdadeltaModel(η=0.1, ρ=0.99, λ=0)\n", "gradientModel = AdamModel(η=3e-4)\n", "\n", "net = buildTanhClassificationNet(\n", " 2, # number of inputs\n", " 1, # number of outputs\n", " [100,100,2], # hidden layers structure\n", " params = NetParams(gradientModel = gradientModel)\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Update our model and the visualization" ] }, { "cell_type": "code", "execution_count": 87, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# set up a visualization of the projections\n", "layers = filter(l -> l.nout == 2, net.layers[1:end-1])\n", "num_hidden_layers = length(layers)\n", "plts = [initialize_plot(funcs, lim, gridx, gridy, title=\"Hidden Layer $i\") for i in 1:num_hidden_layers]\n", "sz = round(Int, sqrt(num_hidden_layers) * 400)\n", "projectionviz = subplot(plts..., n=num_hidden_layers, size=(sz,sz))\n", "\n", "# setup animation, then show the plots in a window\n", "anim = initialize_animation()\n", "gui()\n", "\n", "# create another visualization to track the internal progress of the neural net\n", "progressviz = track_progress(net, fields=[:w,:b,:Σ,:a], size=(num_hidden_layers*300,800), m=2, w=0);" ] }, { "cell_type": "code", "execution_count": 88, "metadata": { "collapsed": false }, "outputs": [], "source": [ "dist = Distributions.Uniform(lim...)\n", "# dist = Distributions.Uniform(-0.6,0.6)\n", "progressgui = false\n", "\n", "function test_data(n, lim, funcs)\n", " xs = linspace(lim..., n)\n", " x1, x2 = [hcat(xs,map(f,xs)) for f in funcs]\n", " y1, y2 = ones(n), -ones(n)\n", " DataPoints(vcat(x1,x2), vcat(y1,y2))\n", "end\n", "\n", "testn = 100\n", "testdata = test_data(testn, lim, funcs)\n", "\n", "function activateHidden(net, layers, x, y, seriesidx, plts)\n", " n = length(x)\n", " p = length(layers)\n", " projx, projy = zeros(n,p), zeros(n,p)\n", " for i in 1:n\n", " # feed the data through the neural net\n", " OnlineAI.forward!(net, [x[i], y[i]])\n", " \n", " # grab the net's activations at each layer\n", " for j in 1:p\n", " projx[i,j], projy[i,j] = layers[j].Σ\n", " end\n", " end\n", " \n", " # now we can update the plots\n", " for j in 1:p\n", " plts[j][seriesidx] = (vec(projx[:,j]), vec(projy[:,j]))\n", " end\n", "end\n", "\n", "# final plot to track test error\n", "errviz = plot([totalCost(net, testdata)], m=3, ylab=\"Error\")\n", "gui(errviz)" ] }, { "cell_type": "code", "execution_count": 89, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "Subplot{Plots.QwtPackage() p=16 n=191}" ] }, "execution_count": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iterations_per_frame = 1000\n", "total_frames = 100\n", "for frm in 1:total_frames\n", " # pick one of the functions at random, sample from the x line, then update the\n", " # neural net with [x, f(x)] as the inputs\n", " for i in 1:iterations_per_frame\n", " f = sample(funcs)\n", " x = rand(dist)\n", " y = target(f)\n", " update!(net, Float64[x, f(x)], [y])\n", " end\n", " \n", " # update the progress visualization\n", " update!(progressviz, true, show=progressgui)\n", " \n", " # update the error plot\n", " push!(errviz, totalCost(net, testdata)) |> gui\n", "\n", " # update the projections\n", " x = linspace(lim..., 70)\n", " for (seriesidx, (x,y)) in enumerate([(gridx,gridy), (gridy,gridx), (x,map(f1,x)), (x,map(f2,x))])\n", " activateHidden(net, layers, x, y, seriesidx, projectionviz.plts)\n", " end\n", " \n", " # show/update the plot\n", " gui(projectionviz)\n", " frame(anim)\n", " sleep(0.001)\n", "end\n", "\n", "# displays the progress if there's no gui\n", "progressgui || progressviz.subplt" ] }, { "cell_type": "code", "execution_count": 90, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "WARNING: handleLinkInner isn't implemented for qwt\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfQAAAEsCAIAAAC62dafAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAsTAAALEwEAmpwYAAAgAElEQVR4nO3df1Ab95k/8PdyqyK5J9mSLSURzpGY+GL3aulifzPG1zpFpNfLtXMWY9xeEsPUas/Ikz/4kZvYp8zYd4Mv8cBkasN0HKDXwzfBbnNJOsiZibnWRgn2ZOCbwoyXi8EXc4F+DY0hsI42ZymVEn3/ECYgkMAgo2Xv/fonBu3nsw+L8vDos7vPCrFYDESqNNLT9ual/4J9+w/3bNcDAMJjQ4MfhUwPPGQ3ind339Gxi+e7ZXx1x7d3WjHS9u+//gj3fu8HT1gXtNtwz9lfSRPY/J3d2+36uxsnUTIxIlUa7ai5/SatmZj8XuS1MgCo6ZxIOTQdgp0uAHB1Bqf+7egIJt08NOh3O+AqOx2MxWKxiTrHcsVJlMRdLn+IFmv8yrsA4PJdOOkxR0faWt7suHDyWAsA6HV3f/eGVTkAYNIB0K3722pfPv70TwxJNxdDE34JWPsHHQAYHnmmxjf0mWNd8gFEd1lWpgMgmsNQ+6kXXv0QgMMU+s+e/nDo//2158CxFinFkIG2+tJS79HG108d9TqdzsIi7+u9YwCAcFttVWlVbdvFtucLhdLGHgAD7adKC51Op9NZWFp/tic6OYfcVl9V6HQ6naW1Pz83PH32EAAgvl144NTzpU6n0+l0FlXVXhxSwkMXn3vGAwCBVt/RUwNhRPBZKDQ1ONpz5mihUxAEQRCc3tqz8bBGLp7yer21pyYDdhYW1bf1p+HYEcVl+qMD0Ry661xfvkcddROx0PDg4PCwVO0CgLruOZY7pAb37Ld3c18wFgs2TJ+spnPQX5mwWUmzFItFzvkcsyZwdwdjsWC3GwDcncFYLDZYPWubtkt10750dQYn9xiPs7NuVmAlzcFYrHv294HmvtByH2vSKFbupEZby3/dWeMG4K7rjFwuN0Nvz8212x+435RikBEA4HpNGp0YvFAGAPAc/48wkD05ytXgv9BSLJ5wnwBQ1twdi8X6XvMBaPH89P3fvXXomASgrKFjIjh42jftD4JucmodMHT2xBEAcJyWJkKD51wA4H/nsz2jnXUA4KobjrRvN07tEZAv+ir8ACqbO0Ox2OCFOgBo8bzRH9ZlTwbsvxaMjHbGAw7e+rLgJ1oKJndSJ3HV6smMekfnhVx1L+3ZYjXnFlY1lwDAB+NTybKm4w3vrsItNuFDAEBn63FvqfeFlk4AwI3RoUEJAEqqfrzTbMx92ndsjroaGP/9hwBQefQHW8z63CfeGB68du1a1aM2/apsADBlJ1zFo1y/EgCAkh89uV0P5BZ64h8wLrzzQXwDh+/grjyjaHXumHN/RIvFE6qkKabsyZOtuj9el/CS/qsi8GUZjqByAwqMOWVlZbdurbesjW+/anK8YZVxrvnjo1333RP/P8dsyzECoigqk3MimrC9Lj6NErn9jez4159FkA0AD+baAAAREKUVK3fSFP+5wAgAyF2/aQcAU/a0+mUy8cYT8Y9feqW1tbX1Jwf/8lvf+mv3N1b9If7tzq5rCoCRjnMtc+9BARA49MuBKICRozqdTqer7ZKnXk64PkbUfQUA8KF0RQaAkXdb/QDwF9sfnNzis8X9oETzYHKnlWT+TOivyHEWFjkte5skANV//73EAlzvOOBzAKjY9s3SKm+hzfH9vXv3fv+3a/78b2ocAKS9m01FpUU5jx+aPXcE2PzEjwAAJx76TmlpYc4RAHDt2GCerLwDB77rrR+aVr2LeX91ugSA5NlmKfKWOnMe9wNAZfE2853+7ER3hMmdVEqXvQpAfO1iSvwcZPYcm09xuKSAXwKAsoZO307rl2Mn/ys+UX3+tM8NSC0nmgIA3NVS8KAV9mfPd5Q5AMDf4ne44ydUp/9pMOoAMXfX5EnRQEtLAIDrtPTGTiuMjm/Hr+QJNLV+FJq+R+PTP7tWV+YA4G9qkQA4KjuGj+VNfaBI+AFTHhOihRNibD9AmtDbWOo40FLSLL2yb+PIyITOaLOmbFEQVsYmJm5hlclunV5Eh8dGJiI6o90655L71Fby0I0gAEtO7vSdhBUFOp1eP0fLAWVsaDQYFUVTTu7CWhgQLQ3fZqQpSjAC6O12+7xb6o1W+xwJXG9dwFjozbm5c6yr6I1J/yQYrblGa7IXidKPyzKkFdmrANxjWobWBEQrAJdliIg0iJU7EZEGMbkTEWkQkzsRkQYxuRMRaRCTOxGRBqX/Ove333477XMSEdHCFRQUsHInItKUgoICACKUsf7hcYMpJ/f27Xry0MCNqJiTm7uU58vHZycioozIcpps/9DYWJFjKjzaHgX6z3gtD+xvrPWYdN4eJdPRERHRooj5/uHGXXY87xJsv1WeW/PM3qYLE7FCM55cK3he9l4+uDXTERIR0R3Latxl6W078/yzblQ6dMP9AdQ8YgaA+x+rxM2bmQ6PiIgWQwRw86Pr44oD0nu/ezobDn18pd1ou08a/3T2AEEQks3FNjVERMtD8LZO/zLWWJSwQVbXiLhz38HG1l+VSIHx9Ttc0idhAMDgpTZH3vrZM8aSuFs/ARER3bks35sSgPDQBy3AV8Q1Jhxp7pIBubs94NiwOtPhERHRYojjB7YJBwCgrKFjm3XLyY66nHzLIQAlp4N78lIPTrFEQ0REGSRejgTH5LCoN5uNIgD7zvJI8KlRBTb7/A8Dm74aw0RPRKQeIkSjdebjIsW5Hz9GREQrxpJ6y7BaJyJSpyUldy7LEBGpExuHERFpEJdliIg0iMsyREQaJCIqD1y7HtGtfSjPLgLRsKKEopOvGc1L6fpLRESZklWqs+w//q8v7M7RlZ6Sgb4mt8VSXO7xFBcUv9k3T89fYZrlCZeIiBZCbPF1xF7cCTy3Tsg5909FX3kfzX1v7dukX8hgLssQEalT1vBzOwDIPb8+AUee7Y9GOgOezQZBEISi+qFopqMjIqJFybKb5bO1pZZtnupzv9puGA3nV/ql0UhosAEVnpO9swcISSx/6ERElIz4vGA75q6RJiJbzCIQLa87rtcDwO5y34Hmq8CWhAHJuvsyvxMRqUfWMVfD8C+f3SiGZFmJjp03GJxdMgDlneZjjkcfznR4RES0GCICB3IMBwAArs6g31+9Nt8iAIDDJ9Unlu0JWK0TEamTmLjMcrg9VCkrYZitZrb8JSJaoeZI4HqjWc+Wv0REKxl7yxARaRB7yxARaRArdyKiFUDwtt7R9qzciYg0KAtReaC/t39gZKrXgDw00D8wpLD3ABHRipXYFbL/jNfywP7GWo9J5+2Zpykku0ISEanUzK6Qvof/ZW/ThYlYoRlPrhU8L3svH9yaYjCXZYiI1GlGV8j1kQ8DqHnEDAD3P1aJmzczHB0RES3KjK6Qj3x+HQ59/Byr0XafNP7p7AHsCklEpH5Zzws297tbpInI4SfyjBt3uKRPwgCAwUttjrz1swfEkljmuImIKIWZXSF1a0w40twlA3J3e8CxYXWmwyMiosVI6ArZfrKjLiffcghAyengnrzUg7kaQ0SkTrO6Qu4sjwSfGlVgs1vZFZKIaIWaI4GLRqudXSGJiFYy9pYhItIg9pYhItKgrEwHQERE6cdlGSIiDeKyDBGRBokAEJVHZIPdqgcQDStKaLLbr2g0G5eU/ImIKDOyFHmk/ScFOQ2X41/3NbktluJyj6e4oPjNvnl6/rK3DBGROoknPCVH/JKrTgcACF99H819b+3bpF/IYC7LEBGpU9bh1va+Btd4vFsYIiOdAc9mgyAIQlH9EB/GRES0MmUBuPXZ7a+io+H8Sr80GgkNNqDCc7J39gC2/CUiUr+ZJ0zF3PK643o9AOwu9x1ovgpsSRiQrLsv8zsRkXrMvIlp7LzB4OySASjvNB9zPPpwZoIiIqKlEQHosk2Ir7lbv+GvXptvEQDA4ZPqE8v2BKzWiYjUSQSwxds6eSEkjLsOt4cqZSUMs9XMlr9ERCvUHAlcbzTr2fKXiGglY28ZIiINYm8ZIiINYstfIiIN4rIMEZEGcVmGiEiDsgAgKo+Mhae+JQ8N9A8MKWwsQ0S0YiW2/O0/47U8sL+x1mPSeXvm6fjLlr9ERCo1s+VvuOeZvU0XJmKFZjy5VvC87L18cGuKwVyWISJSpxktf8PD/QHUPGIGgPsfq8TNm5kNjoiIFkfEtJa/kU+uw6GPn2M12u6Txj+dPYAVOhGR+s24zt24cYdL+iR+anXwUpsjb/3sAbEkliVaIiJakJk3MenWmHCkuUsG5O72gGPD6gxFRURESzKz5a9+y8mOupx8yyEAJaeDe/JSD+YSDRGROiW0/IV9Z3kk+NSoApvdypa/REQr1BwJXDRa7Wz5S0S0krG3DBGRBrG3DBGRBrFyJyLSIFbuREQaNDu5RxV5qiOkwWzWL288RESUBrOSe1hyW7bB7TYhGHzw7/zHn05x4QyrdSIidUpM7tHhfpScfuuVpxdSsXNZhohInRKfoRq69XGgZa9BEARBOHq2PyMxERHREiVW7hPD4bIa/z8/+91I989z8p/5Xqh968wanhU6EdHyELytix6bmNxzCsobn9ADwPbdPhz47xvRrbkztknWAJJJn4hIPRKXZc5XGITaLgDhgd8cg2vDPUu6VpKIiDIiMXcXHPS7HsoXDgGA7zVpa8rzqqzWiYjUKTG56/N2tcdC8pgCo9msn6ds59UyRETqNGf61putvHeJiGgFY28ZIloOsy/8iDUWZSSS/yXYW4aISIMSr5YhIiIN4LLMnUn7R8uECZftg2rqmyP4eZlUIlP/g2TKUu5aSsBlGSIiDZprWSYqD/T3D40pyx4MERGlx6zKXemtMjkul1Wamk7c0yw17tuSYvDdqNYX+ClscR/WFjd56vmTfYyaPkQ90S6PxYWU4uddtkORlsinj8rUoVicZV4Dmb67FD/jQobPtsRfwaL3u4gdpXEpZrrEyr23ueSEr6O98XhrsKPJU9ETTjU4Ns3dCI6IiBYnIbmHr74nVbu/DgDGPB8wyrUZIqIVSJhZdIdPFRpGXwoe3GoElHrnN+1nu/fM7AqZYikmPtXbb78NoKCgYJEBeVtTfJ6asbuFbba4UQv8IJwQ7UI+CabrpQVGu5BR0yO/oxnuakgLf2np+136DAt/w9zphIs+FIuzPJPjTv5/udPNZm95997es/e79Ly0kAyT+qXJbyasqHQdLfzlN149XmhFtLdQV3Es2L49xXP25rLE5E5EREuXuOa+2oYTVb+QAVl6N4CN6wwZiYqIiJYk8WqZTd6WuldzLEIFgGYpmMd27kREK9Ds5G0vb488NTIKo81qZGonIlqR5kzfotVuX8qkXHAnIsqsxBOqRESkAewKSUSkQUzuREQatBynTNkwkojo7plzdV2la+6CkIbA0jKJ2uZhMHd7HlUFk655VBVMuuZRVTDpmiddwYDLMkREmsTkTkSkQUzuREQapNI1d0omjUtyNCce4WXAg7wMWLkTEWkQkzsRkQYxuRMRaRBXvoiINIiVOxGRBjG5ExFpEJM7EZEGMbkTEWkQH6SnftGRgWshcW1urnX6bysaVpRQNP5v0WjmIxHTICoPXLshrs3JtRozHYq2JDmwYUW+/RaG0WzmWzi9WLmrnPK6V5ez/4Vaj03nPSNPe6GvyW2xFJd7PMUFxW/2KRkLUDOU3iqdZf/xxgqbyXuqN9PRaEjSA6v8m9tiKfZ4PJ7i4mq+hdOOl0KqWri33uD4ZCJ22Az5qGDJ7g4e3BqvfcKve7/7adVb+zbpMxyiVvTWOx0f/TT24k4oFwXTP3aH2rfy0KZD0gMbHajaVuvtbtzEiv3uYOWuasO97zmqv2MGAPOjlY6bN6fKm8hIZ8Cz2SAIglBUPxRNPgUtSPjqe1K1++sAYMzzAaMsJNMj+YGNftIuNW3WCYIgFB09KyefghaHyV2NBs7WlpaWeo+eHbkuIVsX/6btvrXjE5HJLaKj4fxKvzQaCQ02oMJzkssIS/XpMLJ18RrSeK9j/NNb/IOZHskObPjGaH5ZnTQRCg134Ij7lV7+OU0zJnc1Mtyz6ZuPP75j8z0bv7UXv78JAAi/dzqQt8E0uYWYW153fNcWq6jP3V3uC7x3NXPBaoN+s8v1+5thAIgOtkpr77dwsSAtkh5YfU5BXWP5FrNeb99ZXon3r45mMkwtYnJXI/v2Xd59+/bt2b5m9WrpxD93yYBy5ZKEDasNylBvT7+MsfMGg7NLBqC803zM8ejDmQ55xVttw4mqX8iALL0bwMZ1hkwHpBWzD+xIb1e/HB05X2EQ6mUA4f5XT+DPHrZlOlLNiZGqRTpq3PHfVEmzFIvFpDoHqjtjsaC/2jX5K3T4pIlMh6kFw3W3j2izFMx0MFqScGCDdUB150Qs1Df1Fnb5XuNbOO14tcwKoIyNKdDbZ118HVZkJQyzlRcIp0t0bGQURpuVdw2kWdIDq8hjYRitZl6ZlH5M7kREGiQyuZPmffHFF1euXPnoo48A3HvvvV/72teysni2iTRO+OKLLzIdA9HddeXKlfHxcYPBACAUClmt1k2bNmU6KKK7i5U7ad/ExITRaMzOzgYgiuLHH3/Mtz1pHk8ckfaJtwH4/PPP4/8g0jZW7qR969at+5//+Z9oNArg888/t9lsfNuT5gmRSGT+rYhWsi+++OL69es3b94EsGbNmvXr1/OEKmkeL4Uk9RrpaXvz0n/Bvv2He7brAXmo978+uqVbtfr+jZusd/vC6OjYxfPdMr6649s7rRhp+/dff4R7v/eDJ6wLWtEJ95z9lTSBzd/Zvd3OK7gpQzJ3/xRRKqMdNbffpDUTsVh3c9m0t62joWP47u4+2OkCAFdncOrfjo7kN66GBv1uB1xlp4OxWCw2UecAgJpO3ndJGcMzS6RS41feBQCX78JJj6H/1DZPEwBHSdmDUpNfkg489syjwdatd++JSYZVOQBg0gHQrfvbal8+/vRPkjecEUMTfglY+wcdABgeeabGN/SZgx1qKHO48khqNNR+6oVXPwTgMIX+s6f/aucFAChpvvRKY+ulTjcA+C99MKMH+EBbfWmp92jj66eOep1OZ2GR9/XeMQBAuK22qrSqtu1i2/OFQmljD4CB9lOlhU6n0+ksLK0/23O7va/cVl9V6HQ6naW1Pz83PH32EAAgvl144NTzpU6n0+l0FlXVXhxSwkMXn3vGAwCBVt/RUwNhRPBZKDQ1ONpz5mihUxAEQRCc3tqz8bBGLp7yer21pyYDdhYW1bf1p/cw0v9qmf7oQDSH7qleUwAcdVc6Tlf7qpsvDMZisVhEKgEA1HXPWPSQGtyz397NfcFYLNgwfbKazkF/ZcJmJc1SLBY553PMmsDdHYzFgt1uAHB3BmOx2GD1rG3aLtVN+9LVGZzcYzzCzrpZgZU0B2Ox7tnfB5r7Qpk43qRBrNxJjbaW/7qzxg3AXdcZuVy+eefTh188vK8wFxg781xFCwC4tm80zxwUX6NxvSaNTgxeiK/Qe47/RxjInmyD72rwX2gpFk+4TwAoa+6OxWJ9r/kAtHh++v7v3jp0TAJQ1tAxERw87Zv2B0E3ObUOGDp74ggAOE5LE6HBcy4A8L/z2Z7RzjoAcNUNR9q3G6f2CMgXfRV+AJXNnaFYbPBCHQC0eN7oD+uyJwP2XwtGRjvjAQdvfVnwEy0Fkzupk7hq9WRGnTovpAy0Vzlte08EAFSf+9n2uRbcXXUv7dliNecWVjWXAMAH41PJsqbjDe+uwi024UMAQGfrcW+p94WWTgDAjdGhQQkASqp+vNNszH3ad2yOuhoY//2HAFB59AdbzPrcJ94YHrx27VrVozb9qmwAMGUn9D1Url8JAEDJj57crgdyCz3xDxgX3vkgvoHDd3BXnlG0OnfMuT+ixeIJVVoZxroabfkHAAAlfql+1xbznJuZbj+VUPfH6xJe0n9VBL4swxFUbkCBMaesrOzWrfWWtfHtV02ON6ya82RtfLTrvnvi/+eYbTlGQBTFyWfEBZHwdD6dLj6Ncvt2El12/OvPIsgGgAdz4w+p4O0mlGas3GklkLv2xzO7q6Zv4me7NhsUJTznQ0795wIj8QG/aQcAU/a0+mVyRDwR//ilV1pbW1t/cvAvv/Wtv3Z/Y9Uf4t/u7LqmABjpONcydygKgMChXw5EAYwc1el0Ol1t15endhOujxF1XwEAfChdkQFg5N1WPwD8xfYHJ7f4bP6fnmgRmNxpBej995/64/8KHNpsMQg6g8lkONkjz7GpvyLHWVjktOxtkgBU//33EgtwveOAzwGgYts3S6u8hTbH9/fu3fv9367587+pcQCQ9m42FZUW5Tx+aPbcEWDzEz8CAJx46DulpYU5RwDAtWODebLyDhz4rrd+aNqfHTHvr06XAJA82yxF3lJnzuN+AKgs3jb3Jw+idGFyJ5XSZa8CEF+7mFP23IuKDpcU8EsAUNbQ6dtpnbZ9nPhE9fnTPjcgtZxoCgBwV0vBg1bYnz3fUeYAAH+L3+GOn1Cd/qfBqAPE3F2TJ0UDLS0BAK7T0hs7rTA6vh1/aFygqfWj0PQ9Gp/+2bW6MgcAf1OLBMBR2TF8LG8q9pk/YPIfl+jOsP0AaURvY6njQEtJs/TKvo0jIxO6+Z6WF1bGJiZuYZXJbp1eRIfHRiYiOuPshxrOHCwP3QgCsOTkTt9JWFGg0+n1c7QcUMaGRoNRUTTl5C6shQHR0vBtRpqiBCOA3m63z7ul3mi1z5HA9dYFjIXenJs7x7qK3pj0T4LRmmu0JnuRKP24LENakb0KwD0mXabjIFIFLssQEWkQK3ciIg1icici0iAmdyIiDWJyJyLSICZ3IiINSv917m+//Xba5yQiooUrKChg5U5EpCkFBQWYqtzloYHoPXnxJ8rLQwM3omJObm7Km7cXNDsREWVEFoDo0FnLAw81X5YB9J/xWh7Y31jrMem8PUqmoyMiokURgYEjD7gB6HUiwj3P7G26MBErNOPJtYLnZe/lg1szHSEREd2xrLPeh3BOanYjjGh4uD+AmkfMAHD/Y5W4eTPT4RER0WJkuW+99uITmz/7EIAY+eQ6HPr4SrvRdp80/unsAUJyyxs5ERElJaLl+84WSAC2mVZfbHNJ/zcMGIHBS22OvG/PHpCs0RiTOxGRemQND4++PdpXDfj8fT/8P3YTjjR3yYDc3R5wbFidejDLdiIidRLtditgvN+F4IM5er3xZEddTr7lEICS08E9eakHT6/imd+JiNRjjn7uUWVsVIHNPv/DwBISenyq+B2qvM6diCiD5kjg4tyPH5sDK3ciInVi+wEiIg0SoYz1D48bTDm5diOAaFhRQtHJ14zm1B0IWK0TEalTltNk+4fGxoocU+HR9ijQ1+S2WIrLPZ7iguI3++bpPxCbZnnCJSKihRDz/cONu+x43iXYfqsc/our76O57619m/QLGbzAyl3wtk7/MtZYtJhIiYhowbIad1l62848/6wblQ4jIiOdAc9mgyAIQlH9UHSewazciYjUKQvAzY+ujysOtL83HB4N51f6pdFIaLABFZ6TvbMHsPcAEZH6iV0j4s59B3fuK74l7P9dxFded1yvB4Dd5b4DzVeBLQkD2H6AiEj9snxvSgDCQx+0AF/5+LzB4OySASjvNB9zPPpw6sGs3ImI1EkcP7BNOAAAZQ0d2x78c3/12nyLAAAOn1SfWLYn4E1MRETqJF6OBMfksKg3x69p33W4PVQpK2GYreY7bT9AREQqIUI0Wq0zug3ojWY92w8QEa1kbD9ARKRBWVDG+vv7h0a+vBlVHhroHxhS5rvIHTyhSkSkVontB/rPeC0P7G+s9Zh03p55ug/wJiYiIpWa2X7guTXP7G26MBErNOPJtYLnZe/lg1tTDGbBTkSkTjPaD+iG+wOoecQMAPc/VombN1MPZuVORKROM9oP/G7iOhz6+BWQRtt90vinswew/QARkfplxdsPNLb+qkQKjK/f4ZI+CQMABi+1OfLWzx4QS2KZ4yYiohRmth8Q15hwpLlLBuTu9oBjw+rUg1m5ExGp08z2A9YtJzvqcvIthwCUnA7uyUs9mDcxERGpU2L7AfvO8kjwqVEFNruV7QeIiFaoOdoPiEarne0HiIhWMrYfICLSIBFReeDa9Yhu7UN5dhGIhhUlNNl5QDTGl2qSYrVORKROWaU6y/7j//rC7hxd6SkZ6GtyWyzF5R5PcUHxm33z9B/gpZBEROoktvg6Yi/uBJ5bJ+Sc+6eir7yP5r639m3SL2QwK3ciInXKGn5uBwC559cn4Miz/dFIZ8Cz2SAIglBUPzRfY0hW7kRE6pRlN8tna0st2zzV53613TAazq/0S6OR0GADKjwne2cPYPsBIiL1E58XbMfcNdJEZItZBKLldcf1egDYXe470HwVSHyMarIinfmdiEg9so65GoZ/+exGMSTLSnTsvMHg7JIBKO80H3M8+nDqwazciYjUSUTgQI7hAADA1Rn0+6vX5lsEAHD4pPrEsj0Bb2IiIlInMXGZ5XB7qFJWwjBbzWw/QES0Qs2RwPVGs57tB4iIVjK2HyAi0qAsROWB/t7+gZGpi9rloYH+gSFlvovcwROqRERqldh+oP+M1/LA/sZaj0nn7Zmn+wBvYiIiUqmZ7Qd8D//L3qYLE7FCM55cK3he9l4+uDXFYBbsRETqNKP9wPrIhwHUPGIGgPsfq8TNm6kHs3InIlKnGe0HHvn8Ohz6+AU0Rtt90vinswew/QARkfplPS/Y3O9ukSYih5/IM27c4ZI+CQMABi+1OfLWzx4QS2KZ4yYiohRmth/QrTHhSHOXDMjd7QHHhtWpB7NyJyJSp4T2A+0nO+py8i2HAJScDu7JSz2YNzEREanTrPYDO8sjwadGFdjsVrYfICJaoeZI4KLRamf7ASKilYztB4iINEgEgKg8IhvsVj2AaFhRQpOdB0Sj2ZhyaWZx1brgbZ3+ZayxaBGTEBFRClmKPNL+k4Kchsvxr42fWMcAAAfvSURBVPua3BZLcbnHU1xQ/GbfPP0HeCkkEZE6iSc8JUf8kqtOBwAIX30fzX1v7dukX8hgrrMTEalT1uHW9r4G13j8ziVERjoDns0GQRCEovqh+RpDsnInIlKnLAC3Prv9VXQ0nF/pl0YjocEGVHhO9s4ewPYDRETqN/OEqZhbXndcrweA3eW+A81XgcTHqCYr0pnfiYjUY+alkGPnDQZnlwxAeaf5mOPRh1MPZuVORKROIgBdtgnxNXfrN/zVa/MtAgA4fFJ9YtmegDcxERGpkwhgi7d18kJIGHcdbg9VykoYZquZ7QeIiFaoORK43mjWs/0AEdFKxvYDREQalAUAUXlkLDz1LXlooH9gSJnvInfwhCoRkVolth/oP+O1PLC/sdZj0nl75uk+wJuYiIhUamb7gXDPM3ubLkzECs14cq3gedl7+eDWFINZsBMRqdOM9gPh4f4Aah4xA8D9j1Xi5s3Ug1m5ExGpk4hp7Qcin1yHQx+/gMZou08a/3T2AFbrRETqN+NqGePGHS7pk/ip1cFLbY689bMHxJJYlmiJiGhBZl4KqVtjwpHmLhmQu9sDjg2rUw/m1TJEROo0s/2AfsvJjrqcfMshACWng3vyUg/mTUxEROokzF5RiSpjowpsduudth+IT/X2228DKCgo+HKzmc/VS4GP3CMiSos5ErhotNrZfoCIaCVj+wEiIg2aXblHFXmq9YDBbE71MFVW60RE6jQruYclt2Ub3G4TgsEH/85//OkUKzRcliEiUqfE5B4d7kfJ6bdeeTpVxX4bEzoRkTolrrmHbn0caNlrEARBEI6e7U89mDcxERGpU2JynxgOl9X4RyOR4c6GI+5nesKJA4QklileIiJagMRlmZyC8sYn9ACwfbcPB/77RnRr7oxtkhXpzO9EROqRWLmfrzAItV0AwgO/OQbXhntS3cnEyp2ISJ0Sc3fBQb/roXzhEAD4XpO2pjyvyqtliIjUKTG56/N2tcdC8pgCo9msn6cBARM6ES2P2V1M2K0ktTnTt95sXciVkKzciYhUiu0HiIg0aK7KPSoPXLshrs3Jtc7TP4zVeqYkfERdxOfTpc9ARGo2q3JXeqt0lv3HGytsJu+p3tSDeRMTEZE6JVbuvc0lJ3wdsRd34qXdgqnC+2R7igtm0l65L7zz+5S7V3IuIhgsLJ4Up4YWt9MFjlrgsVpcDAvZ0QI/LqTYLNlLCz+ky/aGWZ4PQ6l/WWmMQc0f9RbxhsmU5YwnoXIPX31PqnZ/HQCMeT5gVEk1mJU7EZE6JTyJKXyq0DD6UvDgViOg1Du/aT/bvWfmHaopqvUUT2KaXkYl/F2d86WFb3YnP+wdu3vxLLAavavHaoEvpfcgLH2zhZTkCy/w02vZdpRspykOQnp3lN6Z7zSA2TEs7n2eEcl+X2mX+Ji9rqOFv/zGq8cLrYj2FuoqjgXbty/sqUxTZid3IiJaZoknVFfbcKLqFzIgS+8GsHGdISNRERHRkiSeUN3kbal7NcciVABoloJ58z4km4iI1Gd28raXt0eeGhmF0WY1MrUTEa1Ic6Zv0Wq3L2VSLrgTEWVW4glVIiLSAPaWISLSICZ3IiINWo5TpuwvRkR098y5uq7SNXdBSENgaZlEbfMwmLs9j6qCSdc8qgomXfOoKph0zZOuYMBlGSIiTWJyJyLSICZ3IiINUumaOyWTxiU5mhOP8DLgQV4GrNyJiDSIyZ2ISIOY3ImINIgrX0REGsTKnYhIg5jciYg0iMmdiEiDmNyJiDSID9JTv+jIwLWQuDY31zr9txUNK0ooGv+3aDTzkYhpEJUHrt0Q1+bkWo2ZDkVbkhzYsCLffgvDaDbzLZxerNxVTnndq8vZ/0Ktx6bznpGnvdDX5LZYiss9nuKC4jf7lIwFqBlKb5XOsv94Y4XN5D3Vm+loNCTpgVX+zW2xFHs8Hk9xcTXfwmnHSyFVLdxbb3B8MhE7bIZ8VLBkdwcPbo3XPuHXvd/9tOqtfZv0GQ5RK3rrnY6Pfhp7cSeUi4LpH7tD7Vt5aNMh6YGNDlRtq/V2N25ixX53sHJXteHe9xzV3zEDgPnRSsfNm1PlTWSkM+DZbBAEQSiqH4omn4IWJHz1Pana/XUAMOb5gFEWkumR/MBGP2mXmjbrBEEQio6elZNPQYvD5K5GA2drS0tLvUfPjlyXkK2Lf9N239rxicjkFtHRcH6lXxqNhAYbUOE5yWWEpfp0GNm6eA1pvNcx/ukt/sFMj2QHNnxjNL+sTpoIhYY7cMT9Si//nKYZk7saGe7Z9M3HH9+x+Z6N39qL398EAITfOx3I22Ca3ELMLa87vmuLVdTn7i73Bd67mrlgtUG/2eX6/c0wAEQHW6W191u4WJAWSQ+sPqegrrF8i1mvt+8sr8T7V0czGaYWMbmrkX37Lu++ffv2bF+zerV04p+7ZEC5cknChtUGZai3p1/G2HmDwdklA1DeaT7mePThTIe84q224UTVL2RAlt4NYOM6Q6YD0orZB3akt6tfjo6crzAI9TKAcP+rJ/BnD9syHanmxEjVIh017vhvqqRZisViUp0D1Z2xWNBf7Zr8FTp80kSmw9SC4brbR7RZCmY6GC1JOLDBOqC6cyIW6pt6C7t8r/EtnHa8WmYFUMbGFOjtsy6+DiuyEobZyguE0yU6NjIKo83KuwbSLOmBVeSxMIxWM69MSj/h448/znQMRESUZv8f3n31cVs2XtoAAAAASUVORK5CYII=", "text/plain": [ "Subplot{Plots.QwtPackage() p=2 n=2}" ] }, "execution_count": 90, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# # show stacked and linked histograms of the predictions for each class\n", "xs = OnlineAI.unzip(testdata)[1]\n", "yhat = predict(net, xs)\n", "yhat1, yhat2 = yhat[1:testn], yhat[testn+1:end]\n", "subplot(histogram(yhat1), histogram(yhat2), nc=1, linkx=true, title=[\"f1 prediction\", \"f2 prediction\"])" ] }, { "cell_type": "code", "execution_count": 91, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfQAAAEsCAIAAAC62dafAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAsTAAALEwEAmpwYAAAgAElEQVR4nO2dXWxd13Xn1wnEigpCqaRDOpFqaGrBiIREt4gDwyommeEdAcUUmAmNyG1nWqkQZ2Ax6IM+HtqCD/EDnUYjd1CLxqCglAe6sB03UB8s98MzQCKpTJtSMCjAl01JB9JEAipmQsK8Cq9hMuAFzjxc6uryfN29z9kfa+/z/4GII/Les/fZe63/WWedvdcJwjAkzdy4cUN3EwAAANoMDw9/wnYfAAAAqGR4eJiIdoh+vFlfqu/aO9hbsD0AAAAGEIncm4360rU/G9439b727gAAAFCBgLhv3L44evzoH9eqe3r09wcAAIACBMS99+A33r62MFX9cEN/dwAAAKhANOf+8S9S/xQEQdqfDCzFiZDely06e9T1w1IIHtn4kIA8tGYw92SJm5YZgwS+ErGZzkkXfqCaTpqCZ4i+cgw2VZSCqgG0EjGkzn9mTxlnC0zsGyzQXQSNTYG4W4ezX6URBPAudkgZkotW1wmCDBeRsjrRde49O3fn6Yt+3PUxd3vuJYLTEQRbP37g2en4jew0iUbuh8fexkLIkmPlEQWTI3sf4SKQZ4548NGeRB/SMu5iJTkjpXfw9ghh6HOcC4nnST6T81PcBa1TnxEnHjlxhkzqu8eqxBPZmWWiqnggxAoRt02cLw/Fna1dWgz6IOuy5LMinrYX6ZWIMUDf+dN1gjwUd9AJZD0H4rrmogK2+tzVMJCi4YzIvEDcjWI4eIey56Cr2/ihd+2zyDYShPB2KbJHAeLuLcqV3fAjCuZH9oaugTz0nRXicwFx9xOpMgwA+L0KqJwoFneTJQdAIpB1kI8MfUfwboWCaqpY3DvrzEDorZDhovBPkI3gs1ZgCykXxmv2ygKUHQgCU/EDiLuHxJ0T7goKgnDePGG49ZMPiLt9dLhNp0FA2UFxYEUWyafyzq+Wce4pv7EOwxtBbtpWCityF+fFnWB/AGgAbmURJVdWH8TdOTS5jfhrgwAA/Gl7dKo7Z7xkDzl3X8EbGIBC8E4PuySPfPy323/jvLjD4ADQRFzT4W4GyD/I2yN3H9IymbcmZQFeB4Cv5NM0H8TdOeJCXM4LEmCOc0vRQCeoLeMtuGAAUGZQWwYAIAGKiLmC8w9UASHhDoAviPqywOcg7n6C2AooAYbkDLGpclvcEbECAPwGhcO2QKABAADkn7gDAAAgiDsAAHgJxN158OABgHIh5vMQdw/BgwegFcQTmlBVVaYFxB0AkAViBYsUGfzy1pbpepGETQP+iMR6sORyUrraMuId7F4pHwBLSPkZXphXTkpUWyZ3d+AbgAlFXApmXDZKkZZJc4k0Q0/8PHwDWCRD1rNtMvJFmLHzCF/hPRd3WVmP/DXxPVasHIPZ3RHQQuIsC9ph62NxiWdlxk6j6vUMapfKkN/iXnzQE1WeeezDtmMgH0q0I/7aDeZmXEJC2jZDARWdGz/FXfmrjhJ9A44BtKLWjNNC+HyHhf0rJjbZIRUdYg/XuWt6iV0YRo+DlAjQhzEzTmxLR9PAML6Je/xl2WrtMq7vkHigHMNmHG8RFKSlDEVHtdj3fRP3Nsr9ofPIEeAYQCFxZdcB7kT1EX9EZwU/c+667yLj6UtbKUjcL3uGGWXvPD4HMwYSCM+Qh5G7MetE4APUYljZE1sRyb/ruy32kkLK0P6yfJbHbXGPW5hhm4OJA1V0eq5h9RTRd2i6PrqLdqfEC6NY3IMO1B5ZBOuJkYIVDsx8CzAkouzmwW2oVjLGs/WngMLWT/cv29qhari2jHWXaDfdeWXt2hOFXbVyIw/UwtCMCfl3MaQKESq7gorNjcMPVHW5ROEFxvAKIA4TZW93IFvfEUyIEN/z2EJEzQMKI1tVc+Nqzp2VS8T7gLtaIAI3M6ZMS4ZVi8BkHslRcY/noNRsGRBsLwXoO5CCobK3YNUZR5EuY0VB+0fV0d1Ly3AWzbTbsTjFN5dzHgfgOrKPkUAccTWQOKIMjok7f0Wz6BXwQIdgG7a3gb5bpvCIu5SWceVhjpLFkcBj+Cs7UILI5IZhtNivKrZH7s36nds/2/HYvv2DfZ2/3mjU15tb/7+vv99KtG9I2dPEuEDogqgHOEokeI8D2+5KzvFRMawdkXtj/lzPwAuvXDoztHvstfmOzzT+YmRg4Njo6OjosWMTC43ijRaFvz3h4SpIw62wnX8PpdC++IITj6Lw+enjF8dnwm99hf7n14LdZ8b+y7Wne4mIqLm8+OGphblLB+3l593yhxbYEgLiuGjJ3lC2d1G1I/eND96rTYx8gYio78A40XI7Qm/+/Frt8qGeIAiC5156p26jl20Ub1aK/yjFY7sBXEg0Y6X27IcZlyFUj/AoLfPRfdrZ0wrO+z5T+fCjj7ey7Bs/Wz5yarK2ur5+f4ZeHHl9PpqXCVJQ1cWMNHjOwxm8K9P0cLWEluoBKsN2QTNWZOqu63s5/aUt7r2HqtWfPtggImrefbv22BMDW1mY3n3Dk5dOH+7v7d37ldNn6UcfLEcOEaagpH9S/tDlA5YybWYWz7juft6jRtnzhSYqAhp3Daycyk6dkfueIbp47q06Ub32w+v01Kd30dL8zcV6c+l7Z3YFr9aJaGPxuxfp858bstfbvKRZdruMqUg9U0XXhtKaWplRM+lpR4mbcZoxF7Nhd/VdE8x9+dFD0oNjb0x+d99AcIaIpmtrB3Y0Xq0c+fns6jeGz01UD7V+Xx2/8j8O96UeTDUKgp0MfxD/cOQz8l1Rv1cNOIsySxa8k41/0fsniTJ4vNIh2J4/aa4sLVPf0GBfdGVMo76yQX2D/b0Shw62Dn7jxg0iGh4elu5cprh3t3ZZf8j4fPFyAd2uHVLHU9EdYAj1MUqOo0hFOTKHYW54IkFV7lNQNhp6hjUi4jsG9+5N/Fxf/6C5iJ2ICrqEqsHKMA35Kz7i95KjwPNz+3xamFI4ivc48u0K8xNnWn6AhbLnaMgIuEI4RKHJiqTIlZhxYjpeuJfM5SyOyNM0X3GscFh3itzACqZ+InuTZFrRFLyX03b5ozJGUTvHcUP0PQLPyLD6CsfIPb9LRL6pw1gTfaA89gLMYKCUUtxB8poxzJ8n7MRdzW2o7hikgGN4HR6BR6iJUaS/LInX+q67V5p3uBeFl7irGR2FzpB9KJQHA8oxqeyJTfhixq3z4Cm7ZuAl7p2YLpWZ7yqcqzkE796TM2w3r+yJDeXSQuYCyrx7OlD8QLVISRkFCRkrqhkafWNNCW3UORQou3lLRhVT71AcuSupLeOeUZkpHyPQOHAVu8qe2K68JfOJPPj0pDva+solLePSZHRF58mUdtGuK+RRaQ7Knti6mCXDIBWjaEC5iHubPP7AAbNRj2CtM+AAfJQ9sQ+SlszNL9soH1q2Z9qGxSYm6WHiOa7IWpYeaaHmpuwtMvfaJXbT7IOnQnDum1p4Re5S/hBSYGeeMi4txTrE85oFBPFE2VtYfYxUEFv95TaH9iN3uZmIfVrNgGbrtWzGRFsMw1kNgBz8FVPSkjkH76w6E0Vb5xhF7t3P0eLOvdzfTfHhMOW1CuIuX9qtGTyRu+7aWs8OyoTlyF1Cntz1B8moBzhHoTsqzpacEo2n1V3lELyL+FFa/z3DZuSe3yXCkJhvLC6w5IDpGQFVuJVck7yv5H9C5YFRWiaLTH9gqvKS+g6vcJT8CRkXp9zBMIX7MGsrP2ZN3HMaOfeJ2k5mbzPmlIlXAEBUKEyBJVuEUW2ZjIOqP6YxZNKQ2Zl3p4fBV8oStjvyUMiFPprDTm0ZCSM34A+6LSJXJCPyQbf0wT/KouwtZPqM4J0DFtIyDhi51m5lGjvTAQEF8UPhHLROB7usDN4PVB24DoiRq/N+CIKvFFzr5T0I3q1jWty9kWtphI29XMPiPv4nZDpJ6T8H+TbZBw7n2xXT4t62jXK5RAv5s3DChkpIznnxxYxDki4FDEs2j4W0jFChWv+UPYJw8B4Ej/4XcEO60oAfCLukSt+VXwZuUjkYqpT9wmEOoHDe1C0pY2hMJSFnzYzST5iyggTtUfVgSHVe+1k+UBVwCS/joU5wS8sfD7TFAGZGyR8fUTde/MQ9b7DjjKc501GQAML2IuSXYPlvYsiZibs/118FwDo5g9kRB2NlBcY5dz4WobxCqCObuUEEhO1ZiOXUNZUCbh/TjGM5MaWcasuUyh/ElpPhKsAT+zUzXMOYJWO82ygW986SMvmF3vD88DaHRK/g3WU/wVW2O4aDd3V3AbZeLaIVNjl3t1zHrd4CpSBszwefweDTE63wy7kzHHgkR0oP5r8rQSvVqCN47zb65m9tnbiZ5hG5w3XSwdhYh1eFav6kmyx2b5iEWeTO5JW6ttzSy8xfeSiTspf5btaVE2cQubsyVKCUlEmx1YHgnQEMxL0NXIdg786Ci4AlOHgMzwm3Le7WZ8Z6B7rRKqIZKaXJvteeIKrYUPYWYjYqZ8koPJAXq+LO0yWs90TMKwDgCGyUDcweqAJh8PBVNwjbsxGqZZ/yoc7nsVYsuQwTZS9yL+YSQm/8cJeHg5O9kAfJGcAR+eQM0AGn2jLy+GYfSevLIr/w7ZRdAGG7bsp7G6rztC3VloFLiGyH4XpLWwaEohSYcRpiNtr9U7g5LYCNnDtcIoMOe4dhcwAWmgafzX85cLrzgtheCpkX+ZflegUy71pB2J6PbeOmY1kkkMF45K7aJXx6We4W6Tu7/TlHRxAa8LLOCocKBNY7UAjNtw/GI/d278vqEp207z9y3Igg5NGEdNgO0rARvOfWFf+m1EZaxvNljCoQGx+MolYQtiuA6/hw7ZdKXM25e09ActbnX9xhBYTtGkHm3SwQd7eBV2gCYbsyityGdlZWwmhLIibuzfqdxcV7Kw3NnQFZwLZ1g7BdO2KjhzFWgoC4N+bP9Qy88MqlM0O7x16b198lIAeCdyVIL+PCxVYcPEOyQXdxn58+fnF85tqlV95em7k8eubWhoFeAcASXDyLg+DdFF3FfeOD92oTI18gIuo7ME60jNyMLfA8ShsI27WTI3iPrxSOpOAxC5l038T00X3a2dP6WN9nKh9+9HEz8i3DxcLsYNaMyjCi7oFZUYWiikiYkGy6Ru69h6rVnz7YICJq3n279tgTA9HrQZiClv6WlZACIgTvWkDYrpAs29OfecfMdNI9575niC6ee6tOVK/98Do99eldBnoF8gDLLohoaV9QHIynfrqnZQ6OvTH53X0DwRkimq6tHWDw7qZSG4bYLS1KAQuCGmFFkC4vI18KeBvbfxvK7/UrjkPlJEWkeu/pa5v/dWmZ+oYG+xhIexImxtfurIq5EYdaTo7C1kVBBng/XwaCYr1jcO9evR0BDxF6HzyCdxUgbLeAcPBOgrODSUmBaSRuDhcsY6uPGWF5x+9bnzV/u+o0LlgBwJ1pMq0hidswasu4STcTb62ugSNkgLDdGljaRepPPH680kfubpEYuZTWPRQB0eaIsFUbvv5qfPSW60AZ44TI3VkQvBcAYbtl5IN3A5lG55wl20LLLe5F3oSkrUddwC1tYSDaLFA99LLH837qyy3uLtDFBNP0PQzbkQ4uAUXxXgasg2pi8nSNURTn3EtRZ0Yn7Unqso07e5zDMPIpLBhrIxq2w5INABvViWJx7ywpA6EvQn47h4eoBeMpCVTaACIxCtIybiJfgwmXWkLYroGiOg4blUfQjLEU0i9aU719TxM2NLXI8xwVIagAHAYpXx849FwfTkbuHlfqV7BsJ/3LCIyEwDAZRix499LfcyAeo7gduXs832lbinMQUoDgHWE74EVh6+p6ALfF3XUi01M0ZGwdLnMtTTkfdkkoO8J2K0SWzaR/SqiamL9ImSfE3U0SJzlHgWyQRgmvgXlRsyM/20Yzj5h7rhwqzh5BpJ9O5ty5bCl1Uy/d7HV+ELYDP5A1TyfFvRNzEu/ENR0vWc0NihJYp1TDXqD2ieA4IS1jk5wiC20WBooN/CCH0zsfuYMoaen48gXvORMyuAhYBIPfDfERQm0ZmxR4hpR5IDw/BVYp56IsfeTzZsWRe9iB2iN7hQ7lld8J4rf+I2w3huIx6zzc9v2KAm+Z9JDc5om0jHFac/XwKUqocOEuCs4kIXcDBFhh3EB98giIu1mSbEda3yPlFyBJMSRc1Cdv9gZ5k843jdZcx8hLBEss7h54dbzCDoL33P6AayRPOBmo4ReoFswXlljc4+h2b7tmur11v/VdlPKeOWPii76DR28DDijs/Om0Y88ms/jpYJ27DEXUX4npiZQTK/dSGYTtZaMMb3MSWhEQ+xAid6Z0eZWEio25ZQ/ey3jOzpL4sMpHHW+RJ0aJDRHE3QiZOpK/Hm/aYXNZvQdah7C9nHgcpnS3zfQTRlomF+0BFdGFTAm2u64jksJx+q5WTtk904ASEFIQs9fWH6KT7bQZU25NiJ0zxF2GHIqgNLiWQDjzXsYUPXYt+UQQUBiaCVMMGItC23QvLeOSEunuq+zkp/THg7tayDU3tBhSpmaXbt67Gb0PtWVyTqrFhY8dTXfuYFL8MjyZmNzpJQf5EzJunSdj9N7/hWEQCO31c9qMSbVtKhb3zpIypSgilsOC2p+XGh+zg+mQY5TBykpOe4V7x39ScV3fRRG4DiDnrgcDqXbVZutB8h1hO4igVt817lDVUOrOvZy7TQrOZLevt288bcmOc8l3JGR8Q4XZRebWQ0sWo8TiHuR/zVX3I8exvrtVDIf0HVpdBvI9iHJR30URtvsSi7t1DAhSvLKYL0i7Ky4FJcPRSVa4+Q7ibgTlhiZ1QMlonH/wHukVEjIgEf6WHEHt5juIOy9CCqITrMQqJRXNIa+AVoMMvLVkgU9D3AuT+ASds+TI2zgrr5COwhG2g4ewsuROpC1ZACyFlER8waDIdOVbfiilUInHF1ggxrPsDISaLWamIwwpx4vLMizZSSsS67R7kXsYco+MVWI10uC25KBoHdSyGA2I4sPMy7ufw5E7xwkTeZmGyEHMFCgSaIVP/A5lB0Xgs3M1CIgeru/M0w3h7/hQW4YdUgWBZTFuldb1XXptDGCAkjhHLRz0PWe8kUtXUVtGHfHzFbEg3bv+M44vbOAW9T2/siNsN04+D1DTsHwz7S9pLSoQaTFPE3kt2bGcu479pApQ3putUkn6T1KmbGSu7xVCTcwOZXeFblZVfCYtPkYyH2y4JO6RmSgk8UVmVXxmlJccsKpThh2jkLLzuviXBeXmKVF7wJ0wJSSZwicFrgkuiXsclcZU/CmoraYLtijTc2OOoUzZEbaDGPmMIp+1R9TbpCW7Le5R9NUCywFzWVGn75qSUmktApCMpBkrT/LEsXv36Yu4W5dyA7ARuXhHFA5/JFiRPmmE7cww6peSjekzkLhHFGor15e9EPeMGXVF8a3IUIG6G4myW1ziocyuU1TCHv4EFEYS7prsQf1zgiQvsBKjdC6FbC7dub2+47H9+we3/Xaj0Vhvbn26r7/P0ranVNVwRb5z0LlQi822pk4Sl1nm66+aMAcXh3KiegW7EhtuUbQvBb7fjtwbfzXWs++FP3l5dKhn7Dv1jk8sXB4ZGDh2enT02PCxv15oFOmnCOLZ8jAUU3Yr6q9EWdompiO6aFH4CWla7wQnMXG6oeygEIpcXvxONC1aV2DJBdiKwzfmp3/r8sRq+I1+evVXgoFvj/3nP3q6r/WXD35E0wt/d/Jgr5L2sknbKZN8shZjdt07j9SS3VsV55K2GSQtAsruDvAME1uZtG20y5H0LdSyuhhlK3K/P/9eZeI3+omI+p85W3nwoB2hby7NXh89tCsIguC5V+81i7TVhURpSLt4hlKl4fQJsUKbtahqBZLvkcNk5OK7LmIqdIuCsN0DOkwkpCDVxztS89uMhsG867jNzs0nTpw4MfbSO0v/WqOdPa1fDX32sQ9XN7f+3lzeOHL2am15c/3uFJ0Z/fP5+CGCFPR1OkvZRYZWSd9YTWNxFOl7+2BSY1N0LKHsnNCRixA9puYwpetXiqLUknd8+ejRnZ96/Kknfo/+8gEREW289+b1A9O7H/59/+nJV3p7iYi+dnr869MfEB2OHCJM6YSUvqu5FrR6Es8zdB0mtYqg5Gh2RUrFXW1arqbzrwpwKD8GZMj3amwlD1fb3xO5WLANJz4xdvLkyeef/eU9e2oXv3mzTtT4l3+o0ZN7djXuzd9arNPK93bt+rWbdSJq/P30+cozn7Pd4fSwPXGM3Yqv43eahlvXc9TEHy04NNegG2omU+Dan7shxZas+gZ0K+fee/C/z1zYfWQgCHZ/iaZrzx/ovXv1+Jeu/JgG/+3ViceODARBsPu3auNvnIiG7VyIjIUxifQsbFSanDEBEjKOkM+aUv04+zFO4TVgFtBgyUFnUqWxstKg3r2DfZEPbTTqjQ3qH+yXWuMeBFsHv3HjBhENDw9nfjj6m7Sb+oTIvfh61HyjqWVdqx6kTtkVxXSln+Ujj2fkNtG0D8vkZlVJghBdLzaK2t4m132DMV0nIqLevv7exD8oQvzKKrdIJrGNdiTgxPUcAAdhsVSYRSfkUXdVYVp+QGJ1U/YnslZTWk1wW0dwqTlb90DY7jsKTM8JS+5EqSUzFXegGFmjYe4VUHYHyWFH4ntEU2FuyZ2otmSXXpAdhkTE+1bLV6ExscUQAP0UsGS9eXkN/mVf3KWfLrT/nW+e0sqq5MBvvQttvxg7DYTtLpCY8bZjRKws2eAqDI5pmTy70XKg4JbPZURGj+GSMig7yAFnU9HWN47irhLOk2qYfJuIWOk7lN0pEqdItgigsnl2KPmuCMVpGY0lZRSmU4AUTO5qoexlImftgWxUVCZwCMXi3rklSkTo81wLoPLmsavvspWCABsihsNr6szru9k7BkfSMkUGhZdB8SDH8wZb+Rkouxfk20+ifrYtphmN54Lsr5aJYOhpqsKDuELxtQvm43cou/uk1QWwNplxM04vbasMG1l+RyJ3UBwdl0OtJgtl95HOpLe155pdC9EoxN552ozcRU+5HI+2nSEp8FGsvEbLOAGbZNz+6Z3zeIEpHXeiVgMUNyP3IpvpQXESAx9V12Aou78k2ojN4E34TlTaKrsWItYPr5w7vNgZEitrFo99bPsDYIK5mX94J7q1+LL42h42lcB5ibtRIBzFie8xz52lQcAObKGqODAbWW9RGnGHUmgiLYQnsTFPcyrMl48kGkv+lzQoJEzqRUEzFtyhq83UbYp74kwDJ8mQeErJ0WcfCvhL90CZlQ1s9VW8lgKX/tuP3Ls/lwD6ULtCIM1rBSeRh0sAA3SWdnUVZkmYOO7UlmnDafgcQ1VuMbsJkndZzGlZCUPikJVJRspf+Nmw5doywE9EKvDxcwZgB86W8OgWQ+AzzLCWlkH5r7KACQaOkxyfsDds+5uYgvRXWAMTYOgB8BH7D1QBAOXFzVt4JzprR9wRLFrDwDNVAASJFymiXC+A1Im77mI/LdMiebLcHVcAAIiAl3Vk4cTtkHPgIgqYwMnBTazz0nm+rok7AAAAAfBAtXwg7Q44UNAIjRRpae/gdtFjIO4AAB5Yzclkxzyc0kWiWEjLuHgNBAB4j2AZR1dgUVvGxauibxh42zUAbZySTEedg3FtGaem3zGQdgcgCZ88g3HOPf56QxevngAAEXh7t4vy485SSOeGFgDgIGlK41xEzzhyBwbAJROYh71M+pGcMS3uHgyZJ0DWgRXYv8DIG+xH7qnTGn2NLqYfAGCIePDunAK5k3NHzK8VlNUHBnDKwNpqHobuKTtxiNyTccoI3AZDDczg4AsXGXetO+5E7k4PM1vi/gatByaBX2uDpbhDXwDwDDi1cYymZTC/7Ehc8+Xihg3AGQcTMlowe76Wa8sknCyuAByAvoMcdDpv236g7JZgVlsGdmAePzZsGCN7rDoNVe2ounhkYBWWOfcIUHYrYGVkBAxIPhL9F06tH05LIeE5tsgI3lu/hyvCOGXJyOyV05yMvDqqE6PinnX/h4SMXbKTM67v1SsIlL0gndalz3jwoGg7ZiP3DifZmoRsr8FU8STxuVn8T8VBotkbzPhy541m6Q3GhZw7MEM+93PE0IE5Wrv1bUVmiAgfwinnHgGTZB533/RuGBHj1GfALh5ZOVjl1Q3xyL25slRvauzJdhwyMv9wtE6SMTA4bMHUdCAk7huN+uK180P7vt3Q3Z0WmCEO2L25ZgsGhA+wz0xExL3xN+dP/87RF6m6R3sSB7PFkLbKY2owAgxpW6Zbs6O/tyJy3ff8t15/7vef6Tn0i6KtuTX6IE58zUBkTl1MB8MsPSA+iaU3mNTI/c47L584cWLspXdaqZj1j1MPEaSgvrOAFYjlAWBMauS+6/GDXz46tPNTj/e0/t2TeogQHg4AAMxIFfe9z3517NmOf28a6AwAAAA1iC6F7OnZSRWtPQEAAKAM0fUvvYfHwve19gQAAIAyDJUfGB4eNtMQAAAAIgrwOBQAAPwDhcMAAMBDIO4AAOAhdqpCYosTAAAoJJ5gt1byt3iuPwiKPjAofgTPDsKkG0oOwqQbSg7CpBt8DsKkG0oOoqob8V8iLQMAAB4CcQcAAA+BuAMAgIfYWeeuJM0EImBUlYMh1QFGVTmJQ4rIHQAAPATiDgAAHgJxBwAAD0HyCwAAPASROwAAeAjEHQAAPATiDgAAHgJxBwAAD7Eo7s2VpXrTXvNe0Fy6s3jn3kpkGJsbjfpDGhjifDTrdxYX7600bPfDfVJGssNIoQPFaNaXVjbiv7Yj7huN+uK180P7vg3XKUDjr8Z69r3wJy+PDvWMfafe8YeFyyMDA8dOj44eGz721wsYY3ka8+d6Bl545dKZod1jr83b7o3LpI5k4y9GBgaOjY6Ojh47NgEjzUuzUV+69mfD+6aS3nAdWmDtyvjxChFVp9ZsNO8H67VJoonVMAzD1QmiC3PtsVy/cqo6vbBur2vOU5us0PhMGCj80+kAAAZWSURBVIbh2gxRdQ5jmZfUkdy8fbZyamHTXs/8YH1hYqRKRNXJufgfrUTufc9/6/W5hUm6/gsbrXvC/fn3KhO/0U9E1P/M2cqDB+3gZ3Np9vrooV1BEATPvXoPd7zSbHzwXm1i5AtERH0HxomWEVfmJH0kmz+/Vrt8qCcIguC5l96ppx8CZNF78BtvX1uYqn6YkJUxmJa5887LJ06cGHvpndb8rn9srGWvaA/j0r/WaGdP65dDn33sw9XNrU80lzeOnL1aW95cvztFZ0b/HFkFaT66Tzt7Wu+x6ftM5cOPPsYVMidpI7nxs+UjpyZrq+vr92foxZHX53H9zM/HKUGyOXHf9fjBLx89+uuHHt8SpB5jLXtFexif+ve/Rz99QEREG++9ef3Ak7u3PrFj/+nJV756eHBH7/6vnR6//t4H9jrrKL2HqtWfPtggImrefbv22BMD1l5Y5jipI9m7b3jy0unD/b29e79y+iz96INlm930FHPivvfZr46dPHny+Wd7W//ezP44SKY9jL+8Z0/t4jdv1oka//IPNXpyz67Gvflbi3Va+d6uXb92s05Ejb+fPl955nO2u+wee4bo4rm36kT12g+v01Of3mW7Q84SH8ml+ZuL9ebS987sCl6tE9HG4ncv0uc/N2S7pz5i/hlAi/XaFFUm8UC1AJszF0Zak3h8uha2Hl5NzIbh2tWJ6tbsVsZrq7a76ST3Jx8O4XQNRlqEyEiuTRJNzK6G6wttI62OX4GRFqE2NVK5kPBAFYXD3KaxstKg3r2DfZHfbzTqjQ3qH+xHQiEvzZWlZeobGuzDEBYkdSQb9ZUN6hvs77XSLe+BuAMAgIeg/AAAAHgIxB0AADwE4g4AAB6Ch0WAMc36zZkfP/nvnh3UaaeNe7f+zz/+X/rULz35+a88faBfX0Mriz/4px/Xf+lT/Ye++Ov79T/q3rh3828WPvmf/uNhPK8sJxB3wJeVmT89cvRvZ9fej60GUtfEzUtDR77e/uep6dqlk4d1NHTrtbEvjV5u/3O6tnbysLazIqLmnYl/c+R8ZXIV4l5WkJYBHKkv/uDSS2NDR88T/arOvcxLU0e+TnR2bnVzc3luvEKXR9+6p6OdjfmJ0ct0fPLu+ubqwtURotG3/lFrTYNr5792noh+dSfCt9ICcQd2qX/n3HPnXru19a/GrXP/4bnvzDd+duuNr784W61obujm4otE4zMvPt2/Y8fg03/4vyaIZv9fUpmTIBD6SW3oh7evEr35zT/Y37uj/+BX/9spor/9cXI5FYmWkoeOiOo3Xz76Yk3RuAFXgbgDu/Q/8dmfXBy9tNgkIrp3/fWL19ee+JW+g797KQzf/7s3pojWNDb05Bdn3/3+739hKz3yz/90nWjfJ4veKSQ19MXfXL6//Nv7d9SX7s3/4LWLl+n4uWrh7H7y0FHj1uiRP65Ozsy9eZx+UrQN4DCmt8qC0kCU9dNm8+4VIpqcXQ3Dtakq0amr7Srfa7Upoupc1/3/Yi1lNLR+vzZ5nIjo+NRsjhYiTaU2tD438tDvxt+9m+dctreU1NDam6eIqpNrYXh7aoQqU6hFX1og7kAXguIehquTFaLx72+uzhDR5NyjQiNqxT2lodWrE8eJiCqnrtaW87UQayr1jMIw3Fy/f2W8QjRSS9RduZaiDa3Vpojo1PT35+Zmp8erVDl7dWZ2YRkvxSgjEHegC2FxD+9eOUV0fPLCcaKznQGtanGPN7R+9SwRVd+cTYmjxVqINxVpaHX2Qqear81eIKrOJp6XZEuRhtYW3qxWqtVKpfLocUXlym2E72UE4g4YsDbbyleMTG0rbtcS92QRVNHQ5t2rRFSduFpbmJudnZ2dnZ2ZmVtNCnNlxT3W0BUiOn7h3eW19eXbs+NVIrqQfJsg21LK0IVhWJuqIi1TZiDugAOb745XiCrv3t+mrGu1qdT0hYqG1uamYg+hVF1LomdUe3P8USOVU9+/q+qskocuDMPbV05RBa8pLi+oCglY8L/PBb/5k+n1t0/q3nFjsaFmY+X+6sfU88l9e1VuuTV2RsAtsMUBWGbj3rU/vfjqixdpcm5EqzxZb2hH3+B+pZtSjZ0RcBGscwe2aa7OvU8T07N/8LTGui5oCJQNpGUAAMBDELkDAICHQNwBAMBDIO4AAOAh/x8hnIFw4zIxGwAAAABJRU5ErkJggg==", "text/plain": [ "Plot{Plots.QwtPackage() n=4}" ] }, "execution_count": 91, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xs = xs[1:testn]\n", "plot(xs, hcat(map(f1,xs), map(f2,xs), yhat1, yhat2), leg=true, line=([2 2 5 5], [:blue :red], [:solid :solid :dash :dash]))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Animate!" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "gif(anim, fps = 20)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "# Network viz" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# show the network (uses Qwt, visualize isn't available unless you import it)\n", "import Qwt\n", "viz = visualize(net);" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# update the net representation with weights, etc\n", "update!(viz)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "# testing..." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "selection[3][2]" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "p[4][2] |> length" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "gui(progressviz.subplt)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "histogram(yhat1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "using Plots\n", "p1 = plot(rand(20))\n", "p2 = plot(rand(10))\n", "p3 = scatter(rand(100))\n", "p4 = plot(rand(1000))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "subplot(p1,p2,p3,p4, nr=1, leg=false)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "using Plots; immerse()\n", "p = plot(rand(10))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "gui()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "append!(p,1,rand(10))\n", "gui()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "sp = progressviz.subplt.plts[1].o.widget[:minimumSizeHint]()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "testn = 100\n", "xs = linspace(lim..., testn)\n", "x1, x2 = [hcat(xs,map(f,xs)) for f in funcs]\n", "y1, y2 = ones(testn), -ones(testn)\n", "yhat1, yhat2 = [vec(predict(net, x)) for x in (x1,x2)]\n", "DataPoints(vcat(x1,x2), vcat(y1,y2))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Julia 0.4.0-rc4", "language": "julia", "name": "julia-0.4" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "0.4.0" } }, "nbformat": 4, "nbformat_minor": 0 }