Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save yiyuezhuo/28c279834ef80a8e51acffc0ff7c4fa9 to your computer and use it in GitHub Desktop.
Save yiyuezhuo/28c279834ef80a8e51acffc0ff7c4fa9 to your computer and use it in GitHub Desktop.
compare_use_non_transposed_order
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
{
"cells": [
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [],
"source": [
"using TestImages\n",
"using Images\n",
"using PyCall\n",
"using Flux"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: redefining constant torch\n",
"WARNING: redefining constant nn\n"
]
},
{
"data": {
"text/plain": [
"PyObject <module 'torch.nn' from '/home/yiyuezhuo/anaconda3/lib/python3.7/site-packages/torch/nn/__init__.py'>"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"const torch = pyimport(\"torch\")\n",
"const nn = pyimport(\"torch.nn\")"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((3, 100, 100), Array{Float32,3})"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"img = testimage(\"mandrill\")[1:100, 1:100] \n",
"img_arr = img |> channelview .|> Float32 #CHW\n",
"img_arr |> size, img_arr |> typeof"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((1, 3, 100, 100), Array{Float32,4})"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"img_arr_batch = reshape(img_arr, 1, size(img_arr)...) #NCHW\n",
"img_arr_batch |> size, img_arr_batch |> typeof"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(100, 100, 3, 1)"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dummy_input_py = img_arr_batch |> torch.tensor\n",
"# dummy_input = permutedims(img_arr_batch, [3,4,2,1])\n",
"dummy_input = permutedims(img_arr_batch, [4,3,2,1])\n",
"dummy_input |> size"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"PyObject MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"maxpool_py = nn.MaxPool2d(kernel_size=3, stride=2, padding=1)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"MaxPool((3, 3), pad = (1, 1, 1, 1), stride = (2, 2))"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"maxpool = MaxPool((3, 3); stride=2, pad=1)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"true"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dummy_input_py.requires_grad_()\n",
"dummy_input_py.requires_grad"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.0f0"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"out = maxpool(dummy_input)\n",
"out_py = maxpool_py(dummy_input_py)\n",
"\n",
"(out .- permutedims(out_py.detach().numpy(), [4,3,2,1])) .|> abs |> maximum # NCHW -> WHCN"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((50, 50, 3, 1), (1, 3, 50, 50))"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"random_weight = randn(Float32, size(out)...) # WHCN\n",
"random_weight_py = permutedims(random_weight, [4,3,2,1]) |> torch.tensor # NCHW\n",
"random_weight |> size, random_weight_py.shape"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Grads(...)"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gs = gradient(params()) do\n",
" sum(maxpool(dummy_input) .* random_weight)\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [],
"source": [
"(out_py * random_weight_py).sum().backward()"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [],
"source": [
"using Plots\n",
"theme(:dark)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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"
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grad_maxpool = gs.grads[GlobalRef(Main, :dummy_input)]\n",
"grad_maxpool_py = permutedims(dummy_input_py.grad.numpy(), [4,3,2,1])\n",
"\n",
"vec_grad_maxpool = vec(grad_maxpool)\n",
"vec_grad_maxpool_py = vec(grad_maxpool_py)\n",
"\n",
"scatter(vec_grad_maxpool, vec_grad_maxpool_py, html_output_format=:png)"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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"
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"heatmap(grad_maxpool[:,:,1,1], html_output_format=:png)"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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"
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"heatmap(grad_maxpool_py[:,:,1,1], html_output_format=:png)"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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"
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"heatmap(grad_maxpool[:,:,1,1] .- grad_maxpool_py[:,:,1,1], html_output_format=:png)"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2.3841858f-7"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(vec_grad_maxpool .- vec_grad_maxpool_py) .|> abs |> maximum"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Julia 1.4.1",
"language": "julia",
"name": "julia-1.4"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.4.1"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment