Skip to content

Instantly share code, notes, and snippets.

@antimon2
Last active July 30, 2021 10:36
Show Gist options
  • Save antimon2/03899cfd26b69e8e07bad2beee22f068 to your computer and use it in GitHub Desktop.
Save antimon2/03899cfd26b69e8e07bad2beee22f068 to your computer and use it in GitHub Desktop.
ParamsIterationSample.jl
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-07-30T10:32:01.653Z",
"end_time": "2021-07-30T19:31:59.738000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "versioninfo()",
"execution_count": 1,
"outputs": [
{
"output_type": "stream",
"text": "Julia Version 1.6.2\nCommit 1b93d53fc4 (2021-07-14 15:36 UTC)\nPlatform Info:\n OS: Linux (x86_64-pc-linux-gnu)\n CPU: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz\n WORD_SIZE: 64\n LIBM: libopenlibm\n LLVM: libLLVM-11.0.1 (ORCJIT, skylake)\n",
"name": "stdout"
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-07-30T10:32:01.654Z",
"end_time": "2021-07-30T19:31:59.798000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "const Variable = Array;",
"execution_count": 2,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-07-30T10:32:01.655Z",
"end_time": "2021-07-30T19:31:59.800000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "struct Layer\n params::Vector{Variable}\nend",
"execution_count": 3,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-07-30T10:32:01.659Z",
"end_time": "2021-07-30T19:31:59.801000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "struct Model\n layers::Vector{Layer}\nend",
"execution_count": 4,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-07-30T10:32:01.660Z",
"end_time": "2021-07-30T19:31:59.802000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "struct VariableIterator\n model::Model\nend",
"execution_count": 5,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-07-30T10:32:01.661Z",
"end_time": "2021-07-30T19:31:59.835000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "function Base.iterate(iter::VariableIterator)\n st1 = iterate(iter.model.layers)\n isnothing(st1) && return nothing\n iterate(iter, (st1, iterate(st1[1].params)))\nend\nfunction Base.iterate(iter::VariableIterator, (st1, st2)::NTuple{2, Any})\n if isnothing(st2)\n st1′ = iterate(iter.model.layers, st1[2])\n isnothing(st1′) && return nothing\n return iterate(iter, (st1′, iterate(st1′[1].params)))\n end\n (st2[1], (st1, iterate(st1[1].params, st2[2])))\nend\n\n# Base.IteratorEltype(::Type{<:VariableIterator}) = Base.HasEltype()\nBase.eltype(::Type{<:VariableIterator}) = Variable\n\nBase.IteratorSize(::Type{<:VariableIterator}) = Base.SizeUnknown()",
"execution_count": 6,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-07-30T10:32:01.663Z",
"end_time": "2021-07-30T19:32:00.575000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "parameters(model::Model) = VariableIterator(model)",
"execution_count": 7,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 7,
"data": {
"text/plain": "parameters (generic function with 1 method)"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-07-30T10:32:01.664Z",
"end_time": "2021-07-30T19:32:01.747000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "model = Model([\n Layer([\n [1 2; 3 4],\n [5, 6],\n [7 8; 9 10],\n [11, 12]\n ]),\n Layer([]),\n Layer([\n reshape(1:60, 3, 4, 5)\n ])\n])",
"execution_count": 8,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 8,
"data": {
"text/plain": "Model(Layer[Layer(Array[[1 2; 3 4], [5, 6], [7 8; 9 10], [11, 12]]), Layer(Array[]), Layer(Array[[1 4 7 10; 2 5 8 11; 3 6 9 12]\n\n[13 16 19 22; 14 17 20 23; 15 18 21 24]\n\n[25 28 31 34; 26 29 32 35; 27 30 33 36]\n\n[37 40 43 46; 38 41 44 47; 39 42 45 48]\n\n[49 52 55 58; 50 53 56 59; 51 54 57 60]])])"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-07-30T10:32:01.667Z",
"end_time": "2021-07-30T19:32:02.593000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "for param in parameters(model)\n println(param, \": \", sum(param))\nend",
"execution_count": 9,
"outputs": [
{
"output_type": "stream",
"text": "[1 2; 3 4]: 10\n[5, 6]: 11\n[7 8; 9 10]: 34\n[11, 12]: 23\n[1 4 7 10; 2 5 8 11; 3 6 9 12]\n\n[13 16 19 22; 14 17 20 23; 15 18 21 24]\n\n[25 28 31 34; 26 29 32 35; 27 30 33 36]\n\n[37 40 43 46; 38 41 44 47; 39 42 45 48]\n\n[49 52 55 58; 50 53 56 59; 51 54 57 60]: 1830\n",
"name": "stdout"
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-07-30T10:32:01.668Z",
"end_time": "2021-07-30T19:32:02.668000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "function parameters_simple(model::Model)\n params = Variable[]\n for layer in model.layers\n for param in layer.params\n push!(params, param)\n end\n end\n return params\nend",
"execution_count": 10,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 10,
"data": {
"text/plain": "parameters_simple (generic function with 1 method)"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-07-30T10:32:01.669Z",
"end_time": "2021-07-30T19:32:02.694000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "for param in parameters_simple(model)\n println(param, \": \", sum(param))\nend",
"execution_count": 11,
"outputs": [
{
"output_type": "stream",
"text": "[1 2; 3 4]: 10\n[5, 6]: 11\n[7 8; 9 10]: 34\n[11, 12]: 23\n[1 4 7 10; 2 5 8 11; 3 6 9 12]\n\n[13 16 19 22; 14 17 20 23; 15 18 21 24]\n\n[25 28 31 34; 26 29 32 35; 27 30 33 36]\n\n[37 40 43 46; 38 41 44 47; 39 42 45 48]\n\n[49 52 55 58; 50 53 56 59; 51 54 57 60]: 1830\n",
"name": "stdout"
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-07-30T10:32:01.670Z",
"end_time": "2021-07-30T19:32:02.770000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "function parameters_channel(model::Model)\n Channel{Variable}() do channel\n for layer in model.layers\n for param in layer.params\n put!(channel, param)\n end\n end\n end\nend",
"execution_count": 12,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 12,
"data": {
"text/plain": "parameters_channel (generic function with 1 method)"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-07-30T10:32:01.671Z",
"end_time": "2021-07-30T19:32:02.951000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "for param in parameters_channel(model)\n println(param, \": \", sum(param))\nend",
"execution_count": 13,
"outputs": [
{
"output_type": "stream",
"text": "[1 2; 3 4]: 10\n[5, 6]: 11\n[7 8; 9 10]: 34\n[11, 12]: 23\n[1 4 7 10; 2 5 8 11; 3 6 9 12]\n\n[13 16 19 22; 14 17 20 23; 15 18 21 24]\n\n[25 28 31 34; 26 29 32 35; 27 30 33 36]\n\n[37 40 43 46; 38 41 44 47; 39 42 45 48]\n\n[49 52 55 58; 50 53 56 59; 51 54 57 60]: 1830\n",
"name": "stdout"
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-07-30T10:32:01.672Z",
"end_time": "2021-07-30T19:32:03.364000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "collect(parameters_simple(model)) ==\ncollect(collect(parameters_channel(model))) ==\ncollect(collect(parameters(model)))",
"execution_count": 14,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 14,
"data": {
"text/plain": "true"
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-07-30T10:32:01.673Z",
"end_time": "2021-07-30T19:32:03.369000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "using BenchmarkTools",
"execution_count": 15,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-07-30T10:32:01.675Z",
"end_time": "2021-07-30T19:32:03.489000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "model = Model([\n Layer([\n Matrix{Float32}(undef, 1024, 1024),\n Vector{Float32}(undef, 1024),\n Matrix{Float32}(undef, 1024, 2048),\n Vector{Float32}(undef, 2048)\n ]),\n Layer([]),\n Layer([\n Array{Float32, 3}(undef, 2048, 1024, 10),\n Array{Float32, 2}(undef, 1024, 100),\n Array{Float32, 1}(undef, 100)\n ])\n]);",
"execution_count": 16,
"outputs": []
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-07-30T10:32:01.676Z",
"end_time": "2021-07-30T19:32:07.445000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "@benchmark parameters_simple($model)",
"execution_count": 17,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 17,
"data": {
"text/plain": "BechmarkTools.Trial: 10000 samples with 957 evaluations.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m 92.862 ns\u001b[22m\u001b[39m … \u001b[35m 4.831 μs\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m 0.00% … 97.80%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m 96.400 ns \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m 0.00%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m112.519 ns\u001b[22m\u001b[39m ± \u001b[32m195.096 ns\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m10.02% ± 5.70%\n\n \u001b[39m▂\u001b[39m▇\u001b[34m█\u001b[39m\u001b[39m▆\u001b[39m▄\u001b[32m▃\u001b[39m\u001b[39m▂\u001b[39m▁\u001b[39m▁\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m▁\n \u001b[39m█\u001b[39m█\u001b[34m█\u001b[39m\u001b[39m█\u001b[39m█\u001b[32m█\u001b[39m\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m▇\u001b[39m▇\u001b[39m▇\u001b[39m▅\u001b[39m▅\u001b[39m▅\u001b[39m▆\u001b[39m▅\u001b[39m▆\u001b[39m▅\u001b[39m▆\u001b[39m▆\u001b[39m▅\u001b[39m▆\u001b[39m▆\u001b[39m▆\u001b[39m▅\u001b[39m▇\u001b[39m█\u001b[39m█\u001b[39m▇\u001b[39m█\u001b[39m█\u001b[39m▇\u001b[39m▇\u001b[39m▇\u001b[39m▇\u001b[39m▆\u001b[39m▆\u001b[39m▆\u001b[39m▆\u001b[39m▆\u001b[39m▆\u001b[39m▆\u001b[39m▆\u001b[39m▇\u001b[39m▆\u001b[39m▆\u001b[39m▆\u001b[39m▆\u001b[39m▄\u001b[39m▄\u001b[39m▃\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▄\u001b[39m▂\u001b[39m \u001b[39m█\n 92.9 ns\u001b[90m \u001b[39m\u001b[90mHistogram: \u001b[39m\u001b[90m\u001b[1mlog(\u001b[22m\u001b[39m\u001b[90mfrequency\u001b[39m\u001b[90m\u001b[1m)\u001b[22m\u001b[39m\u001b[90m by time\u001b[39m 179 ns \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m208 bytes\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m3\u001b[39m."
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-07-30T10:32:01.678Z",
"end_time": "2021-07-30T19:32:09.716000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "@benchmark parameters_channel($model)",
"execution_count": 18,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 18,
"data": {
"text/plain": "BechmarkTools.Trial: 10000 samples with 74 evaluations.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m796.473 ns\u001b[22m\u001b[39m … \u001b[35m69.657 μs\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m0.00% … 97.73%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m875.838 ns \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m0.00%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m 1.196 μs\u001b[22m\u001b[39m ± \u001b[32m 2.538 μs\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m8.96% ± 4.37%\n\n \u001b[39m█\u001b[34m█\u001b[39m\u001b[39m▆\u001b[39m▄\u001b[32m▃\u001b[39m\u001b[39m▃\u001b[39m▃\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m▂\u001b[39m▂\u001b[39m▁\u001b[39m \u001b[39m \u001b[39m▂\n \u001b[39m█\u001b[34m█\u001b[39m\u001b[39m█\u001b[39m█\u001b[32m█\u001b[39m\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m▇\u001b[39m▆\u001b[39m▇\u001b[39m▆\u001b[39m▆\u001b[39m▅\u001b[39m▅\u001b[39m▅\u001b[39m▁\u001b[39m▄\u001b[39m▄\u001b[39m▃\u001b[39m▄\u001b[39m▃\u001b[39m▃\u001b[39m▄\u001b[39m▃\u001b[39m▃\u001b[39m▃\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▄\u001b[39m▄\u001b[39m▅\u001b[39m▆\u001b[39m▆\u001b[39m▄\u001b[39m▄\u001b[39m▇\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m▇\u001b[39m \u001b[39m█\n 796 ns\u001b[90m \u001b[39m\u001b[90mHistogram: \u001b[39m\u001b[90m\u001b[1mlog(\u001b[22m\u001b[39m\u001b[90mfrequency\u001b[39m\u001b[90m\u001b[1m)\u001b[22m\u001b[39m\u001b[90m by time\u001b[39m 4.8 μs \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m1.27 KiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m19\u001b[39m."
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-07-30T10:32:01.679Z",
"end_time": "2021-07-30T19:32:10.313000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "@benchmark parameters($model)",
"execution_count": 19,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 19,
"data": {
"text/plain": "BechmarkTools.Trial: 10000 samples with 1000 evaluations.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m1.209 ns\u001b[22m\u001b[39m … \u001b[35m32.874 ns\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m0.00% … 0.00%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m1.216 ns \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m0.00%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m1.259 ns\u001b[22m\u001b[39m ± \u001b[32m 0.795 ns\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m0.00% ± 0.00%\n\n \u001b[39m█\u001b[34m▇\u001b[39m\u001b[32m▄\u001b[39m\u001b[39m \u001b[39m▅\u001b[39m▃\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m▂\n \u001b[39m█\u001b[34m█\u001b[39m\u001b[32m█\u001b[39m\u001b[39m▅\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m▄\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m▅\u001b[39m▃\u001b[39m▇\u001b[39m▄\u001b[39m▅\u001b[39m▄\u001b[39m▃\u001b[39m▁\u001b[39m▃\u001b[39m▁\u001b[39m▃\u001b[39m▃\u001b[39m▃\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▃\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▅\u001b[39m▅\u001b[39m▅\u001b[39m▅\u001b[39m▅\u001b[39m▄\u001b[39m▃\u001b[39m▅\u001b[39m▄\u001b[39m▅\u001b[39m▃\u001b[39m▅\u001b[39m▄\u001b[39m▃\u001b[39m▄\u001b[39m▄\u001b[39m▃\u001b[39m▅\u001b[39m▆\u001b[39m▃\u001b[39m▅\u001b[39m▄\u001b[39m▅\u001b[39m▅\u001b[39m▅\u001b[39m \u001b[39m█\n 1.21 ns\u001b[90m \u001b[39m\u001b[90mHistogram: \u001b[39m\u001b[90m\u001b[1mlog(\u001b[22m\u001b[39m\u001b[90mfrequency\u001b[39m\u001b[90m\u001b[1m)\u001b[22m\u001b[39m\u001b[90m by time\u001b[39m 1.64 ns \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m0 bytes\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m0\u001b[39m."
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-07-30T10:32:01.680Z",
"end_time": "2021-07-30T19:32:21.361000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "@benchmark for param in parameters_simple($model)\n println(devnull, sum(param))\nend",
"execution_count": 20,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 20,
"data": {
"text/plain": "BechmarkTools.Trial: 2597 samples with 1 evaluations.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m1.832 ms\u001b[22m\u001b[39m … \u001b[35m 2.921 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m0.00% … 0.00%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m1.904 ms \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m0.00%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m1.920 ms\u001b[22m\u001b[39m ± \u001b[32m80.434 μs\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m0.00% ± 0.00%\n\n \u001b[39m▆\u001b[39m▂\u001b[39m▃\u001b[39m \u001b[39m▂\u001b[39m▁\u001b[39m█\u001b[39m▆\u001b[39m▆\u001b[39m▆\u001b[34m▅\u001b[39m\u001b[39m▅\u001b[32m▅\u001b[39m\u001b[39m▇\u001b[39m▅\u001b[39m▅\u001b[39m▄\u001b[39m▃\u001b[39m▄\u001b[39m▃\u001b[39m▁\u001b[39m \u001b[39m▁\u001b[39m▁\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m▂\n \u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[34m█\u001b[39m\u001b[39m█\u001b[32m█\u001b[39m\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m▇\u001b[39m█\u001b[39m▆\u001b[39m█\u001b[39m▇\u001b[39m▇\u001b[39m▇\u001b[39m▅\u001b[39m▆\u001b[39m▇\u001b[39m█\u001b[39m▇\u001b[39m▅\u001b[39m▇\u001b[39m▅\u001b[39m▆\u001b[39m▇\u001b[39m▅\u001b[39m█\u001b[39m▇\u001b[39m▅\u001b[39m▄\u001b[39m▇\u001b[39m▇\u001b[39m▁\u001b[39m▅\u001b[39m▄\u001b[39m▇\u001b[39m▅\u001b[39m▄\u001b[39m▅\u001b[39m▄\u001b[39m▅\u001b[39m \u001b[39m█\n 1.83 ms\u001b[90m \u001b[39m\u001b[90mHistogram: \u001b[39m\u001b[90m\u001b[1mlog(\u001b[22m\u001b[39m\u001b[90mfrequency\u001b[39m\u001b[90m\u001b[1m)\u001b[22m\u001b[39m\u001b[90m by time\u001b[39m 2.24 ms \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m1.52 KiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m31\u001b[39m."
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-07-30T10:32:01.682Z",
"end_time": "2021-07-30T19:32:32.043000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "@benchmark for param in parameters_channel($model)\n println(devnull, sum(param))\nend",
"execution_count": 21,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 21,
"data": {
"text/plain": "BechmarkTools.Trial: 2479 samples with 1 evaluations.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m1.906 ms\u001b[22m\u001b[39m … \u001b[35m 2.820 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m0.00% … 0.00%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m1.997 ms \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m0.00%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m2.012 ms\u001b[22m\u001b[39m ± \u001b[32m88.122 μs\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m0.00% ± 0.00%\n\n \u001b[39m▆\u001b[39m▂\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m█\u001b[39m▆\u001b[39m▄\u001b[39m▄\u001b[39m▃\u001b[39m▄\u001b[34m▆\u001b[39m\u001b[32m▆\u001b[39m\u001b[39m▄\u001b[39m▃\u001b[39m▃\u001b[39m▂\u001b[39m▃\u001b[39m▂\u001b[39m▂\u001b[39m \u001b[39m▂\u001b[39m▂\u001b[39m▁\u001b[39m▂\u001b[39m \u001b[39m \u001b[39m▁\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m▁\n \u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m▇\u001b[39m▇\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[34m█\u001b[39m\u001b[32m█\u001b[39m\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m▇\u001b[39m█\u001b[39m▇\u001b[39m▇\u001b[39m▇\u001b[39m▇\u001b[39m▆\u001b[39m▇\u001b[39m▆\u001b[39m▆\u001b[39m▅\u001b[39m▆\u001b[39m▃\u001b[39m▅\u001b[39m▅\u001b[39m▅\u001b[39m▆\u001b[39m▅\u001b[39m▆\u001b[39m▄\u001b[39m▅\u001b[39m▅\u001b[39m▄\u001b[39m▆\u001b[39m▅\u001b[39m▃\u001b[39m▄\u001b[39m▄\u001b[39m \u001b[39m█\n 1.91 ms\u001b[90m \u001b[39m\u001b[90mHistogram: \u001b[39m\u001b[90m\u001b[1mlog(\u001b[22m\u001b[39m\u001b[90mfrequency\u001b[39m\u001b[90m\u001b[1m)\u001b[22m\u001b[39m\u001b[90m by time\u001b[39m 2.34 ms \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m2.81 KiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m58\u001b[39m."
},
"metadata": {}
}
]
},
{
"metadata": {
"ExecuteTime": {
"start_time": "2021-07-30T10:32:01.683Z",
"end_time": "2021-07-30T19:32:42.601000+09:00"
},
"trusted": true
},
"cell_type": "code",
"source": "@benchmark for param in parameters($model)\n println(devnull, sum(param))\nend",
"execution_count": 22,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 22,
"data": {
"text/plain": "BechmarkTools.Trial: 2597 samples with 1 evaluations.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m1.833 ms\u001b[22m\u001b[39m … \u001b[35m 2.502 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m0.00% … 0.00%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m1.911 ms \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m0.00%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m1.920 ms\u001b[22m\u001b[39m ± \u001b[32m62.151 μs\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m0.00% ± 0.00%\n\n \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m█\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[34m \u001b[39m\u001b[32m \u001b[39m\u001b[39m▁\u001b[39m▁\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \n \u001b[39m▇\u001b[39m▃\u001b[39m▃\u001b[39m▄\u001b[39m▃\u001b[39m▅\u001b[39m▃\u001b[39m▃\u001b[39m█\u001b[39m█\u001b[39m▆\u001b[39m▇\u001b[39m▆\u001b[39m▇\u001b[34m▆\u001b[39m\u001b[32m▄\u001b[39m\u001b[39m█\u001b[39m█\u001b[39m▅\u001b[39m▅\u001b[39m▅\u001b[39m▃\u001b[39m▄\u001b[39m▄\u001b[39m▃\u001b[39m▃\u001b[39m▃\u001b[39m▃\u001b[39m▂\u001b[39m▃\u001b[39m▃\u001b[39m▃\u001b[39m▃\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▂\u001b[39m▁\u001b[39m▂\u001b[39m \u001b[39m▃\n 1.83 ms\u001b[90m Histogram: frequency by time\u001b[39m 2.16 ms \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m3.02 KiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m79\u001b[39m."
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"gist": {
"id": "",
"data": {
"description": "ParamsIterationSample.jl",
"public": true
}
},
"kernelspec": {
"name": "julia-1.6",
"display_name": "Julia 1.6.2",
"language": "julia"
},
"language_info": {
"file_extension": ".jl",
"name": "julia",
"mimetype": "application/julia",
"version": "1.6.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment