# Fast Image Style Transfer Gonna try to transfer the style of a woodcut to other images. ![FlammarionWoodcut-crop.png][nextjournal#file#50e41b19-7fff-48fb-ae1c-c1181fd1dbdd] [github-repository][nextjournal#github-repository#380ddf50-9361-4d16-a7e6-c4fbb4437deb] # Training Download COCO2014 images. ```bash id=58903627-c68d-4414-a978-143ded597931 wget --progress=dot:giga -P /results/ \ http://images.cocodataset.org/zips/val2014.zip \ http://images.cocodataset.org/zips/test2014.zip \ http://images.cocodataset.org/annotations/annotations_trainval2014.zip \ http://images.cocodataset.org/annotations/image_info_test2014.zip ``` [test2014.zip][nextjournal#output#58903627-c68d-4414-a978-143ded597931#test2014.zip] [val2014.zip][nextjournal#output#58903627-c68d-4414-a978-143ded597931#val2014.zip] [image_info_test2014.zip][nextjournal#output#58903627-c68d-4414-a978-143ded597931#image_info_test2014.zip] [annotations_trainval2014.zip][nextjournal#output#58903627-c68d-4414-a978-143ded597931#annotations_trainval2014.zip] ```bash id=4c127a2e-3541-4a07-8c35-af3e4cbf076a mkdir -p coco cd coco unzip -q [reference][nextjournal#reference#994fc3bd-0a15-4c85-b79f-356122ed7f62] unzip -q [reference][nextjournal#reference#1e8534f1-4019-438f-899a-68e6a5d9694e] ``` Train (\~2 hours on a P100). ```bash id=77536aa7-5ef1-432a-91d8-562fdf390659 cd /examples/fast_neural_style python neural_style/neural_style.py train --dataset /coco --cuda 1 \ --save-model-dir /results --checkpoint-model-dir /shared \ --style-image [reference][nextjournal#reference#0dda9565-382e-4149-b372-f8093e36b708] \ --epochs 2 --batch-size 14 --log-interval 280 --checkpoint-interval 2000 \ --content-weight 1e5 --style-weight 1e10 ``` [epoch_2_Tue_Sep_17_05:29:12_2019_100000.0_10000000000.0.model][nextjournal#output#77536aa7-5ef1-432a-91d8-562fdf390659#epoch_2_Tue_Sep_17_05:29:12_2019_100000.0_10000000000.0.model] # Style Transfer An Antikythera Mechanism recreation. ![Antikythera_model_front_panel_Mogi_Vicentini_2007.JPG][nextjournal#file#59584f37-d6e1-4bcd-9f5f-43a243218d21] ```bash id=6e282a6a-959b-4eb2-8e88-81bcc537c9db cd /examples/fast_neural_style python neural_style/neural_style.py eval --cuda 0 \ --model [reference][nextjournal#reference#6ea21bd0-8ae3-4815-b4bd-6c7138ebb28a] \ --content-image [reference][nextjournal#reference#ac150820-8a98-44d7-aa2f-a554c54b15a1] \ --output-image /results/out.jpg ``` ![out.jpg][nextjournal#output#6e282a6a-959b-4eb2-8e88-81bcc537c9db#out.jpg] Woah. Brutalist architecture. ![812px-NLNZ_ext_5.jpg][nextjournal#file#a8d49682-3e4d-4449-b06b-40a7aa63b3bc] ```bash id=29e1e158-4fad-4f7a-8b7d-caedfa0fa510 cd /examples/fast_neural_style python neural_style/neural_style.py eval --cuda 0 \ --model [reference][nextjournal#reference#258a4dea-c7fc-4063-aad6-db31dc22de62] \ --content-image [reference][nextjournal#reference#7da77a01-3faa-45c3-8ad2-86b382aba214] \ --output-image /results/out.jpg ``` ![out.jpg][nextjournal#output#29e1e158-4fad-4f7a-8b7d-caedfa0fa510#out.jpg] Gears in a printing press. ![PIXNIO-206511-725x483.jpeg][nextjournal#file#5adfac6d-e28f-4925-a892-82cc84ea65cb] ```bash id=a8be2e20-d81c-4123-a493-a41294c436b1 cd /examples/fast_neural_style python neural_style/neural_style.py eval --cuda 0 \ --model [reference][nextjournal#reference#12f3407a-e6d6-47a8-81e6-eec6731c90e9] \ --content-image [reference][nextjournal#reference#597b184e-183a-4806-9079-eb796cd2f1b6] \ --output-image /results/out.jpg ``` ![out.jpg][nextjournal#output#a8be2e20-d81c-4123-a493-a41294c436b1#out.jpg] [nextjournal#file#50e41b19-7fff-48fb-ae1c-c1181fd1dbdd]: (The Flammarion engraving [https://commons.wikimedia.org/wiki/File:FlammarionWoodcut.jpg]) [nextjournal#github-repository#380ddf50-9361-4d16-a7e6-c4fbb4437deb]: [nextjournal#output#58903627-c68d-4414-a978-143ded597931#test2014.zip]: [nextjournal#output#58903627-c68d-4414-a978-143ded597931#val2014.zip]: [nextjournal#output#58903627-c68d-4414-a978-143ded597931#image_info_test2014.zip]: [nextjournal#output#58903627-c68d-4414-a978-143ded597931#annotations_trainval2014.zip]: [nextjournal#reference#994fc3bd-0a15-4c85-b79f-356122ed7f62]: <#nextjournal#reference#994fc3bd-0a15-4c85-b79f-356122ed7f62> [nextjournal#reference#1e8534f1-4019-438f-899a-68e6a5d9694e]: <#nextjournal#reference#1e8534f1-4019-438f-899a-68e6a5d9694e> [nextjournal#reference#0dda9565-382e-4149-b372-f8093e36b708]: <#nextjournal#reference#0dda9565-382e-4149-b372-f8093e36b708> [nextjournal#output#77536aa7-5ef1-432a-91d8-562fdf390659#epoch_2_Tue_Sep_17_05:29:12_2019_100000.0_10000000000.0.model]: [nextjournal#file#59584f37-d6e1-4bcd-9f5f-43a243218d21]: (https://en.wikipedia.org/wiki/Antikythera_mechanism#/media/File:Antikythera_model_front_panel_Mogi_Vicentini_2007.JPG) [nextjournal#reference#6ea21bd0-8ae3-4815-b4bd-6c7138ebb28a]: <#nextjournal#reference#6ea21bd0-8ae3-4815-b4bd-6c7138ebb28a> [nextjournal#reference#ac150820-8a98-44d7-aa2f-a554c54b15a1]: <#nextjournal#reference#ac150820-8a98-44d7-aa2f-a554c54b15a1> [nextjournal#output#6e282a6a-959b-4eb2-8e88-81bcc537c9db#out.jpg]: [nextjournal#file#a8d49682-3e4d-4449-b06b-40a7aa63b3bc]: (https://en.wikipedia.org/wiki/National_Library_of_New_Zealand#/media/File:NLNZ_ext_5.jpg) [nextjournal#reference#258a4dea-c7fc-4063-aad6-db31dc22de62]: <#nextjournal#reference#258a4dea-c7fc-4063-aad6-db31dc22de62> [nextjournal#reference#7da77a01-3faa-45c3-8ad2-86b382aba214]: <#nextjournal#reference#7da77a01-3faa-45c3-8ad2-86b382aba214> [nextjournal#output#29e1e158-4fad-4f7a-8b7d-caedfa0fa510#out.jpg]: [nextjournal#file#5adfac6d-e28f-4925-a892-82cc84ea65cb]: (https://pixnio.com/objects/gears-cogs-machine-machinery-mechanical-printing-press#) [nextjournal#reference#12f3407a-e6d6-47a8-81e6-eec6731c90e9]: <#nextjournal#reference#12f3407a-e6d6-47a8-81e6-eec6731c90e9> [nextjournal#reference#597b184e-183a-4806-9079-eb796cd2f1b6]: <#nextjournal#reference#597b184e-183a-4806-9079-eb796cd2f1b6> [nextjournal#output#a8be2e20-d81c-4123-a493-a41294c436b1#out.jpg]:
This notebook was exported from https://nextjournal.com/a/LebHdjX4tpHHnMLKo3Yyv?change-id=Cbk4xo1XpUpRSZbpkb7hjf ```edn nextjournal-metadata {:article {:settings nil, :nodes {"0dda9565-382e-4149-b372-f8093e36b708" {:id "0dda9565-382e-4149-b372-f8093e36b708", :kind "reference", :link [:output "50e41b19-7fff-48fb-ae1c-c1181fd1dbdd" nil]}, "12f3407a-e6d6-47a8-81e6-eec6731c90e9" {:id "12f3407a-e6d6-47a8-81e6-eec6731c90e9", :kind "reference", :link [:output "77536aa7-5ef1-432a-91d8-562fdf390659" "epoch_2_Tue_Sep_17_05:29:12_2019_100000.0_10000000000.0.model"]}, "1e8534f1-4019-438f-899a-68e6a5d9694e" {:id "1e8534f1-4019-438f-899a-68e6a5d9694e", :kind "reference", :link [:output "58903627-c68d-4414-a978-143ded597931" "test2014.zip"]}, "258a4dea-c7fc-4063-aad6-db31dc22de62" {:id "258a4dea-c7fc-4063-aad6-db31dc22de62", :kind "reference", :link [:output "77536aa7-5ef1-432a-91d8-562fdf390659" "epoch_2_Tue_Sep_17_05:29:12_2019_100000.0_10000000000.0.model"]}, "29e1e158-4fad-4f7a-8b7d-caedfa0fa510" {:compute-ref #uuid "99749ec2-a876-4eee-82c6-b2efd102dc87", :exec-duration 6947, :id "29e1e158-4fad-4f7a-8b7d-caedfa0fa510", :kind "code", :output-log-lines {}, :runtime [:runtime "5e7425be-abc8-4e4e-b096-0c92e9078cf2"]}, "380ddf50-9361-4d16-a7e6-c4fbb4437deb" {:id "380ddf50-9361-4d16-a7e6-c4fbb4437deb", :kind "github-repository"}, "3fa4d222-d6e3-4a8f-9cd1-ac490a7b3325" {:environment [:environment {:article/nextjournal.id #uuid "5b5615a1-6b2b-4cef-9620-9858a4f0f2f3", :change/nextjournal.id #uuid "5d4f9f5a-c7c1-4b15-92b1-13539d4e3b33", :node/id "24f5f730-f1c8-497a-a1e7-b5b623450b49"}], :id "3fa4d222-d6e3-4a8f-9cd1-ac490a7b3325", :kind "runtime", :language "python", :name "Train", :resources {:machine-type "n1-standard-4", :accelerator-type "nvidia-tesla-p100", :accelerator-count 1}, :type :nextjournal, :runtime/environment-variables [{:name "PYTHONPATH", :value "/examples/fast_neural_style/neural_style"}], :runtime/mounts [{:src [:node "380ddf50-9361-4d16-a7e6-c4fbb4437deb"], :dest "/examples"}]}, "4c127a2e-3541-4a07-8c35-af3e4cbf076a" {:compute-ref #uuid "7d114211-846d-4ff2-bcbb-eca1b692eaec", :exec-duration 137184, :id "4c127a2e-3541-4a07-8c35-af3e4cbf076a", :kind "code", :output-log-lines {}, :runtime [:runtime "3fa4d222-d6e3-4a8f-9cd1-ac490a7b3325"]}, "50e41b19-7fff-48fb-ae1c-c1181fd1dbdd" {:id "50e41b19-7fff-48fb-ae1c-c1181fd1dbdd", :kind "file"}, "58903627-c68d-4414-a978-143ded597931" {:compute-ref #uuid "81218cfa-a568-4c0c-a4db-9f65bfa8ada9", :exec-duration 399333, :id "58903627-c68d-4414-a978-143ded597931", :kind "code", :locked? true, :output-log-lines {:stdout 447}, :runtime [:runtime "3fa4d222-d6e3-4a8f-9cd1-ac490a7b3325"]}, "59584f37-d6e1-4bcd-9f5f-43a243218d21" {:id "59584f37-d6e1-4bcd-9f5f-43a243218d21", :kind "file"}, "597b184e-183a-4806-9079-eb796cd2f1b6" {:id "597b184e-183a-4806-9079-eb796cd2f1b6", :kind "reference", :link [:output "5adfac6d-e28f-4925-a892-82cc84ea65cb" nil]}, "5adfac6d-e28f-4925-a892-82cc84ea65cb" {:id "5adfac6d-e28f-4925-a892-82cc84ea65cb", :kind "file"}, "5e7425be-abc8-4e4e-b096-0c92e9078cf2" {:environment [:environment {:article/nextjournal.id #uuid "5b5615a1-6b2b-4cef-9620-9858a4f0f2f3", :change/nextjournal.id #uuid "5d5e72d0-c123-4769-aaa4-ef71c2b844fe", :node/id "24f5f730-f1c8-497a-a1e7-b5b623450b49"}], :id "5e7425be-abc8-4e4e-b096-0c92e9078cf2", :kind "runtime", :language "bash", :name "Eval", :resources {:machine-type "n1-standard-4"}, :type :nextjournal, :runtime/environment-variables [{:name "PYTHONPATH", :value "/examples/fast_neural_style/neural_style"}], :runtime/mounts [{:src [:node "380ddf50-9361-4d16-a7e6-c4fbb4437deb"], :dest "/examples"}]}, "6e282a6a-959b-4eb2-8e88-81bcc537c9db" {:compute-ref #uuid "133ae302-3c7c-4647-9c08-d8f2408591c0", :exec-duration 33652, :id "6e282a6a-959b-4eb2-8e88-81bcc537c9db", :kind "code", :output-log-lines {}, :runtime [:runtime "5e7425be-abc8-4e4e-b096-0c92e9078cf2"]}, "6ea21bd0-8ae3-4815-b4bd-6c7138ebb28a" {:id "6ea21bd0-8ae3-4815-b4bd-6c7138ebb28a", :kind "reference", :link [:output "77536aa7-5ef1-432a-91d8-562fdf390659" "epoch_2_Tue_Sep_17_05:29:12_2019_100000.0_10000000000.0.model"]}, "77536aa7-5ef1-432a-91d8-562fdf390659" {:compute-ref #uuid "5f5a531b-c2e8-452d-856a-da324721fd99", :exec-duration 7229733, :id "77536aa7-5ef1-432a-91d8-562fdf390659", :kind "code", :locked? true, :output-log-lines {:stdout 830}, :runtime [:runtime "3fa4d222-d6e3-4a8f-9cd1-ac490a7b3325"]}, "7da77a01-3faa-45c3-8ad2-86b382aba214" {:id "7da77a01-3faa-45c3-8ad2-86b382aba214", :kind "reference", :link [:output "a8d49682-3e4d-4449-b06b-40a7aa63b3bc" nil]}, "994fc3bd-0a15-4c85-b79f-356122ed7f62" {:id "994fc3bd-0a15-4c85-b79f-356122ed7f62", :kind "reference", :link [:output "58903627-c68d-4414-a978-143ded597931" "val2014.zip"]}, "a8be2e20-d81c-4123-a493-a41294c436b1" {:compute-ref #uuid "db1ddaa9-8673-443a-882e-7252789ab3c9", :exec-duration 6708, :id "a8be2e20-d81c-4123-a493-a41294c436b1", :kind "code", :output-log-lines {}, :runtime [:runtime "5e7425be-abc8-4e4e-b096-0c92e9078cf2"]}, "a8d49682-3e4d-4449-b06b-40a7aa63b3bc" {:id "a8d49682-3e4d-4449-b06b-40a7aa63b3bc", :kind "file"}, "ac150820-8a98-44d7-aa2f-a554c54b15a1" {:id "ac150820-8a98-44d7-aa2f-a554c54b15a1", :kind "reference", :link [:output "59584f37-d6e1-4bcd-9f5f-43a243218d21" nil]}}, :nextjournal/id #uuid "02be4c49-bd2a-46a3-b498-087ea11cb471", :article/change {:nextjournal/id #uuid "5dee5af0-4423-4a89-93d7-d8502bb6eefa"}}} ```