[{"data":1,"prerenderedAt":463},["ShallowReactive",2],{"footer-settings":3,"post-shell:tutorial-for-artists-on-how-to-use-a-neural-network-part-2-4e94e1d2cbe9":22,"post-body:tutorial-for-artists-on-how-to-use-a-neural-network-part-2-4e94e1d2cbe9":71,"code-block:6a8e6cd16cb31:text:midnight":445,"code-block:6a8e6cd16cb34:text:midnight":446,"code-block:6a8e6cd16cb38:text:midnight":447,"code-block:6a8e6cd16cb3b:text:midnight":448,"code-block:6a8e6cd16cb4b:text:midnight":449,"code-block:6a8e6cd16cb4d:text:midnight":450,"code-block:6a8e6cd16cb52:text:midnight":445,"code-block:6a8e6cd16cb54:text:midnight":451,"code-block:6a8e6cd16cb56:text:midnight":452,"code-block:6a8e6cd16cb58:text:midnight":453,"code-block:6a8e6cd16cb5b:text:midnight":454,"code-block:6a8e6cd16cb5d:text:midnight":455,"code-block:6a8e6cd16cb65:text:midnight":456,"code-block:6a8e6cd16cb67:text:midnight":457,"code-block:6a8e6cd16cb6a:text:midnight":458,"code-block:6a8e6cd16cb6c:text:midnight":459,"code-block:6a8e6cd16cb6e:text:midnight":460,"code-block:6a8e6cd16cb70:text:midnight":461,"code-block:6a8e6cd16cb73:text:midnight":462},{"heading":4,"body":5,"links":6,"note":21},"Bottom line, still up front.","A small footer for global links, contact paths, and project context.",[7,10,13,16,19],{"label":8,"url":9},"About","http:\u002F\u002Fmy-website.localhost\u002Fabout#now",{"label":11,"url":12},"Case Studies","http:\u002F\u002Fmy-website.localhost\u002F#selected-work",{"label":14,"url":15},"Side Projects","http:\u002F\u002Fmy-website.localhost\u002Fside-projects",{"label":17,"url":18},"Writing","http:\u002F\u002Fmy-website.localhost\u002Fwriting",{"label":20,"url":9},"Now","",{"id":23,"slug":24,"date":25,"author":26,"title":29,"excerpt":30,"canonicalUrl":31,"featuredImage":32,"authorName":28,"featuredMedia":33,"blocks":70},"cG9zdDo1ODA=","tutorial-for-artists-on-how-to-use-a-neural-network-part-2-4e94e1d2cbe9","April 30, 2018",{"node":27},{"name":28},"Aslan French","Tutorial for Artists on how to use a Neural Network — Part 2","Tutorial for Artists on how to use a Neural Network — Part 2 Originally published at www.jackalope.tech on April 30, 2018. Okay so we’ve installed the Ubuntu partition last week, and now we’re going to","https:\u002F\u002Fmedium.com\u002Fhackernoon\u002Ftutorial-for-artists-on-how-to-use-a-neural-network-part-2-4e94e1d2cbe9",{"node":33},{"id":34,"sourceUrl":35,"srcSet":36,"sizes":37,"altText":21,"mediaDetails":38},"cG9zdDo4MTU=","https:\u002F\u002Fwww.aslanfrench.work\u002Fmedia\u002F2018\u002F04\u002Fmedium-1_HJnGDnhdgDOf9RWfMNhVAA.jpg","https:\u002F\u002Fwww.aslanfrench.work\u002Fmedia\u002F2018\u002F04\u002Fmedium-1_HJnGDnhdgDOf9RWfMNhVAA-300x179.jpg 300w, https:\u002F\u002Fwww.aslanfrench.work\u002Fmedia\u002F2018\u002F04\u002Fmedium-1_HJnGDnhdgDOf9RWfMNhVAA-1024x612.jpg 1024w, https:\u002F\u002Fwww.aslanfrench.work\u002Fmedia\u002F2018\u002F04\u002Fmedium-1_HJnGDnhdgDOf9RWfMNhVAA-768x459.jpg 768w, https:\u002F\u002Fwww.aslanfrench.work\u002Fmedia\u002F2018\u002F04\u002Fmedium-1_HJnGDnhdgDOf9RWfMNhVAA.jpg 1440w","(max-width: 300px) 100vw, 300px",{"width":39,"height":40,"sizes":41},1440,860,[42,50,57,63],{"name":43,"sourceUrl":44,"width":45,"height":46,"mimeType":47,"file":48,"fileSize":49},"medium","https:\u002F\u002Fwww.aslanfrench.work\u002Fmedia\u002F2018\u002F04\u002Fmedium-1_HJnGDnhdgDOf9RWfMNhVAA-300x179.jpg","300","179","image\u002Fjpeg","medium-1_HJnGDnhdgDOf9RWfMNhVAA-300x179.jpg",10715,{"name":51,"sourceUrl":52,"width":53,"height":54,"mimeType":47,"file":55,"fileSize":56},"large","https:\u002F\u002Fwww.aslanfrench.work\u002Fmedia\u002F2018\u002F04\u002Fmedium-1_HJnGDnhdgDOf9RWfMNhVAA-1024x612.jpg","1024","612","medium-1_HJnGDnhdgDOf9RWfMNhVAA-1024x612.jpg",89043,{"name":58,"sourceUrl":59,"width":60,"height":60,"mimeType":47,"file":61,"fileSize":62},"thumbnail","https:\u002F\u002Fwww.aslanfrench.work\u002Fmedia\u002F2018\u002F04\u002Fmedium-1_HJnGDnhdgDOf9RWfMNhVAA-150x150.jpg","150","medium-1_HJnGDnhdgDOf9RWfMNhVAA-150x150.jpg",5121,{"name":64,"sourceUrl":65,"width":66,"height":67,"mimeType":47,"file":68,"fileSize":69},"medium_large","https:\u002F\u002Fwww.aslanfrench.work\u002Fmedia\u002F2018\u002F04\u002Fmedium-1_HJnGDnhdgDOf9RWfMNhVAA-768x459.jpg","768","459","medium-1_HJnGDnhdgDOf9RWfMNhVAA-768x459.jpg",54114,[],[72,78,83,88,92,96,100,104,108,112,116,120,124,128,132,136,141,145,149,153,157,161,165,169,173,177,181,185,189,193,197,201,205,209,214,218,222,226,230,234,238,242,246,250,254,258,262,266,270,274,278,282,286,290,294,298,301,305,309,313,317,321,325,329,333,337,341,345,349,353,357,361,365,369,373,377,381,385,389,393,397,401,405,409,413,417,421,425,429,433,437,441],{"name":73,"clientId":74,"parentClientId":75,"renderedHtml":76,"attributes":77},"core\u002Fheading","6a8e6cd16cb0b",null,"\n\u003Ch2 class=\"wp-block-heading\">Tutorial for Artists on how to use a Neural Network — Part 2\u003C\u002Fh2>\n",{},{"name":79,"clientId":80,"parentClientId":75,"renderedHtml":81,"attributes":82},"core\u002Fimage","6a8e6cd16cb11","\n\u003Cfigure class=\"wp-block-image size-full\">\u003Cimg src=\"https:\u002F\u002Fwww.aslanfrench.work\u002Fmedia\u002F2018\u002F04\u002Fmedium-1_HJnGDnhdgDOf9RWfMNhVAA.jpg\" alt=\"\" class=\"wp-image-815\"\u002F>\u003C\u002Ffigure>\n",{},{"name":84,"clientId":85,"parentClientId":75,"renderedHtml":86,"attributes":87},"core\u002Fparagraph","6a8e6cd16cb12","\n\u003Cp class=\"wp-block-paragraph\">\u003Cem>Originally published at \u003Ca href=\"https:\u002F\u002Fwww.jackalope.tech\u002Fhow-artists-can-set-up-their-own-neural-network-part-2-neural-network-install\u002F\">www.jackalope.tech\u003C\u002Fa> on April 30, 2018.\u003C\u002Fem>\u003C\u002Fp>\n",{},{"name":84,"clientId":89,"parentClientId":75,"renderedHtml":90,"attributes":91},"6a8e6cd16cb13","\n\u003Cp class=\"wp-block-paragraph\">Okay so we’ve \u003Ca href=\"https:\u002F\u002Fwww.jackalope.tech\u002Fhow-artists-can-set-up-their-own-neural-network-part-1-installation\u002F\">installed the Ubuntu partition last week\u003C\u002Fa>, and now we’re going to install the neural network Deep Style. This is where stuff is probably the most difficult. I’m going to equip you with the tools to solve those problems.\u003C\u002Fp>\n",{},{"name":73,"clientId":93,"parentClientId":75,"renderedHtml":94,"attributes":95},"6a8e6cd16cb14","\n\u003Ch2 class=\"wp-block-heading\">What is a CLI?\u003C\u002Fh2>\n",{},{"name":84,"clientId":97,"parentClientId":75,"renderedHtml":98,"attributes":99},"6a8e6cd16cb15","\n\u003Cp class=\"wp-block-paragraph\">When you use a program such as your internet browser, or Photoshop you are using a Graphical User Interface. \u003Cstrong>GUI\u003C\u002Fstrong>. Before GUI there were \u003Cstrong>CLI\u003C\u002Fstrong> . Command Line Interface. A GUI allows you to control a program using buttons. A command line interface allows you to control it using written commands. When you tell Siri to navigate you to your friends house, you are in a way using a modern version of a CLI. Siri is much more sophisticated though. It can listen to your voice and translate that into written words. It can ask for clarification, or intelligently make assumptions about what you actually want. A CLI is much more simple. It’s very literal and strict in how you give it commands. In a way using a CLI is a lot like using a programming language. FEAR NOT! It’s also a lot like asking Siri to do something for you. It’s not really all that hard.\u003C\u002Fp>\n",{},{"name":84,"clientId":101,"parentClientId":75,"renderedHtml":102,"attributes":103},"6a8e6cd16cb16","\n\u003Cp class=\"wp-block-paragraph\">A big advantage of a CLI is that you can create “batch scripts”. Batch scripts are where you automate a bunch of tedious jobs using a programming pattern. I’ll be covering batch scripts more in Part 3 but for now what you need to know is that the name of the language that you write scripts in Linux is called Bash.\u003C\u002Fp>\n",{},{"name":84,"clientId":105,"parentClientId":75,"renderedHtml":106,"attributes":107},"6a8e6cd16cb17","\n\u003Cp class=\"wp-block-paragraph\">There are some people who spend their entire careers mastering Bash. You won’t need to know very much to use the neural network deepstyle though. What you will need to do is use Bash to install the neural network. I’ll explain every step along in the process for you.\u003C\u002Fp>\n",{},{"name":84,"clientId":109,"parentClientId":75,"renderedHtml":110,"attributes":111},"6a8e6cd16cb18","\n\u003Cp class=\"wp-block-paragraph\">If you feel up to it, I highly recommend \u003Ca href=\"https:\u002F\u002Fwww.codecademy.com\u002Flearn\u002Flearn-the-command-line\">this interactive tutorial\u003C\u002Fa> on Codecademy. It’s actually a lot of fun! You use Bash to do things like edit or write poetry. This is not necessary though.\u003C\u002Fp>\n",{},{"name":79,"clientId":113,"parentClientId":75,"renderedHtml":114,"attributes":115},"6a8e6cd16cb19","\n\u003Cfigure class=\"wp-block-image size-full\">\u003Cimg src=\"https:\u002F\u002Fwww.aslanfrench.work\u002Fmedia\u002F2018\u002F04\u002Fmedium-0_g9MMtPKvDWhlFtKQ.png\" alt=\"\" class=\"wp-image-816\"\u002F>\u003C\u002Ffigure>\n",{},{"name":84,"clientId":117,"parentClientId":75,"renderedHtml":118,"attributes":119},"6a8e6cd16cb1a","\n\u003Cp class=\"wp-block-paragraph\">To access a CLI program you need to open your terminal. Ubuntu you can do this by clicking on the start\u002Fprograms button, and then typing “terminal”. It will search for the default terminal application. Then just press Enter and you’ve got it!\u003C\u002Fp>\n",{},{"name":79,"clientId":121,"parentClientId":75,"renderedHtml":122,"attributes":123},"6a8e6cd16cb1b","\n\u003Cfigure class=\"wp-block-image size-full\">\u003Cimg src=\"https:\u002F\u002Fwww.aslanfrench.work\u002Fmedia\u002F2018\u002F04\u002Fmedium-0_dnLGT7zyNo7g9EWJ.png\" alt=\"\" class=\"wp-image-817\"\u002F>\u003C\u002Ffigure>\n",{},{"name":84,"clientId":125,"parentClientId":75,"renderedHtml":126,"attributes":127},"6a8e6cd16cb1c","\n\u003Cp class=\"wp-block-paragraph\">Sometimes throughout these tutorials you’ll see me using a weird looking terminal that looks like an old computer screen. It’s called CRT: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FSwordfish90\u002Fcool-retro-term\">Cool Retro Terminal\u003C\u002Fa> and I decided to use it because I wanted something cool looking for the tutorials but the default terminal as picture above is all you really need and they function basically the same.\u003C\u002Fp>\n",{},{"name":73,"clientId":129,"parentClientId":75,"renderedHtml":130,"attributes":131},"6a8e6cd16cb1d","\n\u003Ch2 class=\"wp-block-heading\">The Big Picture\u003C\u002Fh2>\n",{},{"name":84,"clientId":133,"parentClientId":75,"renderedHtml":134,"attributes":135},"6a8e6cd16cb1e","\n\u003Cp class=\"wp-block-paragraph\">Here are the broad strokes of what we are going to do.\u003C\u002Fp>\n",{},{"name":137,"clientId":138,"parentClientId":75,"renderedHtml":139,"attributes":140},"core\u002Flist","6a8e6cd16cb1f","\n\u003Col class=\"wp-block-list\">\u003Cli>Install the dependencies for the Deep Style Neural Network.\u003C\u002Fli>\u003Cli>Install the Deep Style Neural Network\u003C\u002Fli>\u003Cli>Install CUDA to enable GPU processing.\u003C\u002Fli>\u003C\u002Fol>\n",{},{"name":73,"clientId":142,"parentClientId":75,"renderedHtml":143,"attributes":144},"6a8e6cd16cb20","\n\u003Ch2 class=\"wp-block-heading\">What that means:\u003C\u002Fh2>\n",{},{"name":84,"clientId":146,"parentClientId":75,"renderedHtml":147,"attributes":148},"6a8e6cd16cb21","\n\u003Cp class=\"wp-block-paragraph\">Dependencies are pieces of code that a programmer uses to help build their own code. Good code is like lego blocks. You can snap them in and out. You can think of dependencies like standardized auto parts. If I wanted to build a car I wouldn’t make my own tires or bolts or even the engine from scratch. Programming is all about standing on the backs of giants.\u003C\u002Fp>\n",{},{"name":84,"clientId":150,"parentClientId":75,"renderedHtml":151,"attributes":152},"6a8e6cd16cb22","\n\u003Cp class=\"wp-block-paragraph\">The main dependencies we will download are Torch7, and loadcaffe. They also have their own dependencies. Torch7 will need LuaJIT and LuaRocks. Loadcaffe will need the Google Protocol Buffers. You don’t really need to know what any of these things are, just like you don’t need to know how exactly the spark plug works to install it. In the broad strokes Torch7 is a framework for people to build their neural networks upon. Loadcaffe is an implementation of the Caffe framework in Torch7. Caffe is a neural network framework made by UC Berkley to do image classification and segmentation.\u003C\u002Fp>\n",{},{"name":84,"clientId":154,"parentClientId":75,"renderedHtml":155,"attributes":156},"6a8e6cd16cb23","\n\u003Cp class=\"wp-block-paragraph\">Finally CUDA is a framework by Nvidia that allows programmers to use the GPU to do CPU type work. GPUs are great for doing calculations when they have to process large chunks of data at the same time. Without CUDA your computer will only be able to use the CPU to process the neural network. That will limit the size of images you can produce, and it will take much much much longer to process.\u003C\u002Fp>\n",{},{"name":84,"clientId":158,"parentClientId":75,"renderedHtml":159,"attributes":160},"6a8e6cd16cb24","\n\u003Cp class=\"wp-block-paragraph\">The important take away here is that there is A LOT of people working together to make this stuff possible!\u003C\u002Fp>\n",{},{"name":73,"clientId":162,"parentClientId":75,"renderedHtml":163,"attributes":164},"6a8e6cd16cb25","\n\u003Ch2 class=\"wp-block-heading\">How to get help\u003C\u002Fh2>\n",{},{"name":84,"clientId":166,"parentClientId":75,"renderedHtml":167,"attributes":168},"6a8e6cd16cb26","\n\u003Cp class=\"wp-block-paragraph\">Nobody can do this stuff alone. One of the most important skills in programming is being able to ask for help. Stuff is fixing to get pretty technical, so you’re going to need the tools to troubleshoot problems when (not if) they arrive.\u003C\u002Fp>\n",{},{"name":73,"clientId":170,"parentClientId":75,"renderedHtml":171,"attributes":172},"6a8e6cd16cb27","\n\u003Ch2 class=\"wp-block-heading\">Ways you can get help:\u003C\u002Fh2>\n",{},{"name":137,"clientId":174,"parentClientId":75,"renderedHtml":175,"attributes":176},"6a8e6cd16cb28","\n\u003Col class=\"wp-block-list\">\u003Cli>You can \u003Ca href=\"https:\u002F\u002Fwww.facebook.com\u002Fjcklpe\">message me\u003C\u002Fa> at my facebook page or email me.\u003C\u002Fli>\u003Cli>You can \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjcjohnson\u002Fneural-style\u002Fissues\u002Fnew\">post an issue to the Deep Style Github page\u003C\u002Fa>. Github is a website where people share and collaborate on code. \u003Ca href=\"https:\u002F\u002Fcs.stanford.edu\u002Fpeople\u002Fjcjohns\u002F\">Justin Johnson\u003C\u002Fa> built the implementation of Deep Style that we will be using.\u003C\u002Fli>\u003Cli>Finally if you need help you can check out Stack Exchange. Stack Exchange is a website for people asking questions. There are two stack exchanges that you will want to check out specifically: \u003Ca href=\"https:\u002F\u002Faskubuntu.com\u002F\">AskUbuntu\u003C\u002Fa> if the issue is related to Ubuntu, or \u003Ca href=\"https:\u002F\u002Fstackoverflow.com\u002F\">StackOverflow\u003C\u002Fa> which is for general programming questions.\u003C\u002Fli>\u003C\u002Fol>\n",{},{"name":84,"clientId":178,"parentClientId":75,"renderedHtml":179,"attributes":180},"6a8e6cd16cb29","\n\u003Cp class=\"wp-block-paragraph\">\u003Cstrong>IMPORTANT INFORMATION:\u003C\u002Fstrong> I don’t want to just tell you where to get help. I want to help you know how to best ask for it. Programming is a technology but it’s also a cultural construct. These aren’t robots you’re sending your questions out to on the internet. They’re communities of people and that means that you want to be respectful of them. Programming communities have their own cultural norms and expectations. You’ll get more help if you prepare for it.\u003C\u002Fp>\n",{},{"name":84,"clientId":182,"parentClientId":75,"renderedHtml":183,"attributes":184},"6a8e6cd16cb2a","\n\u003Cp class=\"wp-block-paragraph\">You don’t have to worry too much about messaging me, I’m asking people to do that so I can see what ways I can improve these tutorials. I will say that I’m still early in my developer journey and I’m certainly not a Machine Learning dev, but I’ll help where I can. 🙂\u003C\u002Fp>\n",{},{"name":84,"clientId":186,"parentClientId":75,"renderedHtml":187,"attributes":188},"6a8e6cd16cb2b","\n\u003Cp class=\"wp-block-paragraph\">When you post a question on StackExchange, it is important that you make your question concise and to the point. It needs to be a specific question. A good question would be “What hex wrench size do I need to change out the wheel on my Huffy Bike?”. A bad question would be “HELP!??? WHAT DO I DO? IS THIS BROKEN?” \u003Ca href=\"https:\u002F\u002Fstackoverflow.com\u002Fhelp\u002Fhow-to-ask\">Here’s a great guide\u003C\u002Fa> that goes into further detail.\u003C\u002Fp>\n",{},{"name":84,"clientId":190,"parentClientId":75,"renderedHtml":191,"attributes":192},"6a8e6cd16cb2c","\n\u003Cp class=\"wp-block-paragraph\">You can post much more freeform questions to the Github page, but you’ll also want to try and provide as much information as possible. Be prepared to provide a detailed conversation on what you’ve tried, how you’ve tried it etc. Posting screenshots of your terminal results can be really helpful.\u003C\u002Fp>\n",{},{"name":84,"clientId":194,"parentClientId":75,"renderedHtml":195,"attributes":196},"6a8e6cd16cb2d","\n\u003Cp class=\"wp-block-paragraph\">I also think that in general it’s a good idea to let people know at the beginning of your request for help your background as an artist etc. This is important because it will let people know your familiarity with the terms they might need to use, but it also means that you’re someone who wants to learn. Programmers love programming. It excites them! They want to share that love with others. Programming isn’t easy though. Programmers know that, so they love it when someone is willing to try and learn something new. Don’t be ashamed! We all started at the same place, and we all get where we are because of the people who went before us.\u003C\u002Fp>\n",{},{"name":73,"clientId":198,"parentClientId":75,"renderedHtml":199,"attributes":200},"6a8e6cd16cb2e","\n\u003Ch2 class=\"wp-block-heading\">Time to Install\u003C\u002Fh2>\n",{},{"name":73,"clientId":202,"parentClientId":75,"renderedHtml":203,"attributes":204},"6a8e6cd16cb2f","\n\u003Ch2 class=\"wp-block-heading\">Install Torch7\u003C\u002Fh2>\n",{},{"name":84,"clientId":206,"parentClientId":75,"renderedHtml":207,"attributes":208},"6a8e6cd16cb30","\n\u003Cp class=\"wp-block-paragraph\">Open the terminal and type this in exactly:\u003C\u002Fp>\n",{},{"name":210,"clientId":211,"parentClientId":75,"renderedHtml":212,"attributes":213},"core\u002Fcode","6a8e6cd16cb31","\n\u003Cpre class=\"wp-block-code\">\u003Ccode>cd ~\u002F\u003C\u002Fcode>\u003C\u002Fpre>\n",{},{"name":84,"clientId":215,"parentClientId":75,"renderedHtml":216,"attributes":217},"6a8e6cd16cb32","\n\u003Cp class=\"wp-block-paragraph\">CD stands for “change directory. The ~\u002F stands for “root folder”. That’s the highest level folder of your computer’s memory system.\u003C\u002Fp>\n",{},{"name":84,"clientId":219,"parentClientId":75,"renderedHtml":220,"attributes":221},"6a8e6cd16cb33","\n\u003Cp class=\"wp-block-paragraph\">Next type:\u003C\u002Fp>\n",{},{"name":210,"clientId":223,"parentClientId":75,"renderedHtml":224,"attributes":225},"6a8e6cd16cb34","\n\u003Cpre class=\"wp-block-code\">\u003Ccode>curl -s https:\u002F\u002Fraw.githubusercontent.com\u002Ftorch\u002Fezinstall\u002Fmaster\u002Finstall-deps | bash\u003C\u002Fcode>\u003C\u002Fpre>\n",{},{"name":84,"clientId":227,"parentClientId":75,"renderedHtml":228,"attributes":229},"6a8e6cd16cb35","\n\u003Cp class=\"wp-block-paragraph\">The CLI will then try to use the “curl” command to grab the installation file. Curl is a program for grabbing a file from a url. It’s short for “see url”. Curl. :\u002F Your computer probably won’t have curl on it by default. The CLI will give you a prompt asking if you want to install it. Say yes and then let it do it’s thing.\u003C\u002Fp>\n",{},{"name":84,"clientId":231,"parentClientId":75,"renderedHtml":232,"attributes":233},"6a8e6cd16cb36","\n\u003Cp class=\"wp-block-paragraph\">If you had to install curl try running that command again to then actually run the curl process etc.\u003C\u002Fp>\n",{},{"name":84,"clientId":235,"parentClientId":75,"renderedHtml":236,"attributes":237},"6a8e6cd16cb37","\n\u003Cp class=\"wp-block-paragraph\">Once it’s done type in this:\u003C\u002Fp>\n",{},{"name":210,"clientId":239,"parentClientId":75,"renderedHtml":240,"attributes":241},"6a8e6cd16cb38","\n\u003Cpre class=\"wp-block-code\">\u003Ccode>git clone https:\u002F\u002Fgithub.com\u002Ftorch\u002Fdistro.git ~\u002Ftorch --recursive\u003C\u002Fcode>\u003C\u002Fpre>\n",{},{"name":84,"clientId":243,"parentClientId":75,"renderedHtml":244,"attributes":245},"6a8e6cd16cb39","\n\u003Cp class=\"wp-block-paragraph\">You might also have to install git. Just do like curl before, install git, and then when it’s done, re-run the command from above. Git is a neat way for programmers to collaborate on projects together. You don’t really need to know anything about it to use this DeepStyle neural network but if you’re curious I highly recommend this \u003Ca href=\"https:\u002F\u002Fwww.codecademy.com\u002Flearn\u002Flearn-git\">short interactive lesson\u003C\u002Fa> on Codecademy. Similar to the \u003Ca href=\"https:\u002F\u002Fwww.codecademy.com\u002Flearn\u002Flearn-the-command-line\">CLI tutorial\u003C\u002Fa> mentioned earlier, it’s really cool, and actually teaches you the concepts of git using natural language stuff like poetry and prose editing instead of code.\u003C\u002Fp>\n",{},{"name":84,"clientId":247,"parentClientId":75,"renderedHtml":248,"attributes":249},"6a8e6cd16cb3a","\n\u003Cp class=\"wp-block-paragraph\">That will download the newest torch distro from the internet. When it’s done type in this:\u003C\u002Fp>\n",{},{"name":210,"clientId":251,"parentClientId":75,"renderedHtml":252,"attributes":253},"6a8e6cd16cb3b","\n\u003Cpre class=\"wp-block-code\">\u003Ccode>cd ~\u002Ftorch; .\u002Finstall.sh\u003C\u002Fcode>\u003C\u002Fpre>\n",{},{"name":84,"clientId":255,"parentClientId":75,"renderedHtml":256,"attributes":257},"6a8e6cd16cb40","\n\u003Cp class=\"wp-block-paragraph\">That will change your directory to the torch directory and then open a Bash scripting file that someone made to help install the files now that they are on your computer.\u003C\u002Fp>\n",{},{"name":84,"clientId":259,"parentClientId":75,"renderedHtml":260,"attributes":261},"6a8e6cd16cb41","\n\u003Cp class=\"wp-block-paragraph\">Hopefully no problems so far.\u003C\u002Fp>\n",{},{"name":73,"clientId":263,"parentClientId":75,"renderedHtml":264,"attributes":265},"6a8e6cd16cb49","\n\u003Ch2 class=\"wp-block-heading\">Install loadcaffe\u003C\u002Fh2>\n",{},{"name":84,"clientId":267,"parentClientId":75,"renderedHtml":268,"attributes":269},"6a8e6cd16cb4a","\n\u003Cp class=\"wp-block-paragraph\">Okay first thing is installing the loadcaffe depencies\u003C\u002Fp>\n",{},{"name":210,"clientId":271,"parentClientId":75,"renderedHtml":272,"attributes":273},"6a8e6cd16cb4b","\n\u003Cpre class=\"wp-block-code\">\u003Ccode>sudo apt-get install libprotobuf-dev protobuf-compiler\u003C\u002Fcode>\u003C\u002Fpre>\n",{},{"name":84,"clientId":275,"parentClientId":75,"renderedHtml":276,"attributes":277},"6a8e6cd16cb4c","\n\u003Cp class=\"wp-block-paragraph\">Now you just got to install loadcaffe\u003C\u002Fp>\n",{},{"name":210,"clientId":279,"parentClientId":75,"renderedHtml":280,"attributes":281},"6a8e6cd16cb4d","\n\u003Cpre class=\"wp-block-code\">\u003Ccode>luarocks install loadcaffe\u003C\u002Fcode>\u003C\u002Fpre>\n",{},{"name":84,"clientId":283,"parentClientId":75,"renderedHtml":284,"attributes":285},"6a8e6cd16cb4e","\n\u003Cp class=\"wp-block-paragraph\">Presto! Now it’s time for DeepStyle.\u003C\u002Fp>\n",{},{"name":73,"clientId":287,"parentClientId":75,"renderedHtml":288,"attributes":289},"6a8e6cd16cb4f","\n\u003Ch2 class=\"wp-block-heading\">Install DeepStyle\u003C\u002Fh2>\n",{},{"name":84,"clientId":291,"parentClientId":75,"renderedHtml":292,"attributes":293},"6a8e6cd16cb50","\n\u003Cp class=\"wp-block-paragraph\">Okay, now it’s time to do the real deal!\u003C\u002Fp>\n",{},{"name":84,"clientId":295,"parentClientId":75,"renderedHtml":296,"attributes":297},"6a8e6cd16cb51","\n\u003Cp class=\"wp-block-paragraph\">First:\u003C\u002Fp>\n",{},{"name":210,"clientId":299,"parentClientId":75,"renderedHtml":212,"attributes":300},"6a8e6cd16cb52",{},{"name":84,"clientId":302,"parentClientId":75,"renderedHtml":303,"attributes":304},"6a8e6cd16cb53","\n\u003Cp class=\"wp-block-paragraph\">Second:\u003C\u002Fp>\n",{},{"name":210,"clientId":306,"parentClientId":75,"renderedHtml":307,"attributes":308},"6a8e6cd16cb54","\n\u003Cpre class=\"wp-block-code\">\u003Ccode>git clone https:\u002F\u002Fgithub.com\u002Fjcjohnson\u002Fneural-style.git\u003C\u002Fcode>\u003C\u002Fpre>\n",{},{"name":84,"clientId":310,"parentClientId":75,"renderedHtml":311,"attributes":312},"6a8e6cd16cb55","\n\u003Cp class=\"wp-block-paragraph\">Third:\u003C\u002Fp>\n",{},{"name":210,"clientId":314,"parentClientId":75,"renderedHtml":315,"attributes":316},"6a8e6cd16cb56","\n\u003Cpre class=\"wp-block-code\">\u003Ccode>cd neural-style\u003C\u002Fcode>\u003C\u002Fpre>\n",{},{"name":84,"clientId":318,"parentClientId":75,"renderedHtml":319,"attributes":320},"6a8e6cd16cb57","\n\u003Cp class=\"wp-block-paragraph\">Fourth:\u003C\u002Fp>\n",{},{"name":210,"clientId":322,"parentClientId":75,"renderedHtml":323,"attributes":324},"6a8e6cd16cb58","\n\u003Cpre class=\"wp-block-code\">\u003Ccode>sh models\u002Fdownload_models.sh\u003C\u002Fcode>\u003C\u002Fpre>\n",{},{"name":84,"clientId":326,"parentClientId":75,"renderedHtml":327,"attributes":328},"6a8e6cd16cb59","\n\u003Cp class=\"wp-block-paragraph\">This downloads the learning model. It’s using a Bash script to do this.\u003C\u002Fp>\n",{},{"name":84,"clientId":330,"parentClientId":75,"renderedHtml":331,"attributes":332},"6a8e6cd16cb5a","\n\u003Cp class=\"wp-block-paragraph\">Now Test!\u003C\u002Fp>\n",{},{"name":210,"clientId":334,"parentClientId":75,"renderedHtml":335,"attributes":336},"6a8e6cd16cb5b","\n\u003Cpre class=\"wp-block-code\">\u003Ccode>th neural_style.lua -gpu -1 -print_iter 1\u003C\u002Fcode>\u003C\u002Fpre>\n",{},{"name":84,"clientId":338,"parentClientId":75,"renderedHtml":339,"attributes":340},"6a8e6cd16cb5c","\n\u003Cp class=\"wp-block-paragraph\">If it works properly then you’ll see some output like this:\u003C\u002Fp>\n",{},{"name":210,"clientId":342,"parentClientId":75,"renderedHtml":343,"attributes":344},"6a8e6cd16cb5d","\n\u003Cpre class=\"wp-block-code\">\u003Ccode>[libprotobuf WARNING google\u002Fprotobuf\u002Fio\u002Fcoded_stream.cc:505] Reading dangerously large protocol message.  If the message turns out to be larger than 1073741824 bytes, parsing will be halted for security reasons.  To increase the limit (or to disable these warnings), see CodedInputStream::SetTotalBytesLimit() in google\u002Fprotobuf\u002Fio\u002Fcoded_stream.h.\n[libprotobuf WARNING google\u002Fprotobuf\u002Fio\u002Fcoded_stream.cc:78] The total number of bytes read was 574671192\nSuccessfully loaded models\u002FVGG_ILSVRC_19_layers.caffemodel\nconv1_1: 64 3 3 3\nconv1_2: 64 64 3 3\nconv2_1: 128 64 3 3\nconv2_2: 128 128 3 3\nconv3_1: 256 128 3 3\nconv3_2: 256 256 3 3\nconv3_3: 256 256 3 3\nconv3_4: 256 256 3 3\nconv4_1: 512 256 3 3\nconv4_2: 512 512 3 3\nconv4_3: 512 512 3 3\nconv4_4: 512 512 3 3\nconv5_1: 512 512 3 3\nconv5_2: 512 512 3 3\nconv5_3: 512 512 3 3\nconv5_4: 512 512 3 3\nfc6: 1 1 25088 4096\nfc7: 1 1 4096 4096\nfc8: 1 1 4096 1000\nWARNING: Skipping content loss\t\nIteration 1 \u002F 1000\t\n  Content 1 loss: 2091178.593750\t\n  Style 1 loss: 30021.292114\t\n  Style 2 loss: 700349.560547\t\n  Style 3 loss: 153033.203125\t\n  Style 4 loss: 12404635.156250\t\n  Style 5 loss: 656.860304\t\n  Total loss: 15379874.666090\t\nIteration 2 \u002F 1000\t\n  Content 1 loss: 2091177.343750\t\n  Style 1 loss: 30021.292114\t\n  Style 2 loss: 700349.560547\t\n  Style 3 loss: 153033.203125\t\n  Style 4 loss: 12404633.593750\t\n  Style 5 loss: 656.860304\t\n  Total loss: 15379871.853590\u003C\u002Fcode>\u003C\u002Fpre>\n",{},{"name":84,"clientId":346,"parentClientId":75,"renderedHtml":347,"attributes":348},"6a8e6cd16cb5e","\n\u003Cp class=\"wp-block-paragraph\">WOO!\u003C\u002Fp>\n",{},{"name":84,"clientId":350,"parentClientId":75,"renderedHtml":351,"attributes":352},"6a8e6cd16cb5f","\n\u003Cp class=\"wp-block-paragraph\">But you aren’t done yet! Now you have to install CUDA. Like I said earlier, if you don’t install CUDA, then you can only use your CPU and that will take foreeeeeeeever.\u003C\u002Fp>\n",{},{"name":73,"clientId":354,"parentClientId":75,"renderedHtml":355,"attributes":356},"6a8e6cd16cb60","\n\u003Ch2 class=\"wp-block-heading\">Install CUDA\u003C\u002Fh2>\n",{},{"name":84,"clientId":358,"parentClientId":75,"renderedHtml":359,"attributes":360},"6a8e6cd16cb61","\n\u003Cp class=\"wp-block-paragraph\">To install CUDA you’re going to need to download the right installer. If you followed the first tutorial then you probably installed Ubuntu 16. That means you need CUDA 8. You can find that \u003Ca href=\"https:\u002F\u002Fdeveloper.nvidia.com\u002Fcuda-80-ga2-download-archive\">here\u003C\u002Fa>.\u003C\u002Fp>\n",{},{"name":84,"clientId":362,"parentClientId":75,"renderedHtml":363,"attributes":364},"6a8e6cd16cb62","\n\u003Cp class=\"wp-block-paragraph\">You’ll want to use these options when picking your installer:\u003C\u002Fp>\n",{},{"name":79,"clientId":366,"parentClientId":75,"renderedHtml":367,"attributes":368},"6a8e6cd16cb63","\n\u003Cfigure class=\"wp-block-image size-full\">\u003Cimg src=\"https:\u002F\u002Fwww.aslanfrench.work\u002Fmedia\u002F2018\u002F04\u002Fmedium-0_vz4h9V-ha-9GX2Tz.png\" alt=\"\" class=\"wp-image-818\"\u002F>\u003C\u002Ffigure>\n",{},{"name":84,"clientId":370,"parentClientId":75,"renderedHtml":371,"attributes":372},"6a8e6cd16cb64","\n\u003Cp class=\"wp-block-paragraph\">Download and run both of the installers. Reboot the machine. Open the CLI terminal and run\u003C\u002Fp>\n",{},{"name":210,"clientId":374,"parentClientId":75,"renderedHtml":375,"attributes":376},"6a8e6cd16cb65","\n\u003Cpre class=\"wp-block-code\">\u003Ccode>nvidia-smi;\u003C\u002Fcode>\u003C\u002Fpre>\n",{},{"name":84,"clientId":378,"parentClientId":75,"renderedHtml":379,"attributes":380},"6a8e6cd16cb66","\n\u003Cp class=\"wp-block-paragraph\">That is to check to make sure everything is installed correctly. It should look something like this:\u003C\u002Fp>\n",{},{"name":210,"clientId":382,"parentClientId":75,"renderedHtml":383,"attributes":384},"6a8e6cd16cb67","\n\u003Cpre class=\"wp-block-code\">\u003Ccode>Sun Sep  6 14:02:59 2015       \n+------------------------------------------------------+                       \n| NVIDIA-SMI 346.96     Driver Version: 346.96         |                       \n|-------------------------------+----------------------+----------------------+\n| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\n| Fan  Temp  Perf  Pwr:Usage\u002FCap|         Memory-Usage | GPU-Util  Compute M. |\n|===============================+======================+======================|\n|   0  GeForce GTX TIT...  Off  | 0000:01:00.0      On |                  N\u002FA |\n| 22%   49C    P8    18W \u002F 250W |   1091MiB \u002F 12287MiB |      3%      Default |\n+-------------------------------+----------------------+----------------------+\n|   1  GeForce GTX TIT...  Off  | 0000:04:00.0     Off |                  N\u002FA |\n| 29%   44C    P8    27W \u002F 189W |     15MiB \u002F  6143MiB |      0%      Default |\n+-------------------------------+----------------------+----------------------+\n|   2  GeForce GTX TIT...  Off  | 0000:05:00.0     Off |                  N\u002FA |\n| 30%   45C    P8    33W \u002F 189W |     15MiB \u002F  6143MiB |      0%      Default |\n+-------------------------------+----------------------+----------------------+\n                                                                               \n+-----------------------------------------------------------------------------+\n| Processes:                                                       GPU Memory |\n|  GPU       PID  Type  Process name                               Usage      |\n|=============================================================================|\n|    0      1277    G   \u002Fusr\u002Fbin\u002FX                                     631MiB |\n|    0      2290    G   compiz                                         256MiB |\n|    0      2489    G   ...s-passed-by-fd --v8-snapshot-passed-by-fd   174MiB |\n+-----------------------------------------------------------------------------+\u003C\u002Fcode>\u003C\u002Fpre>\n",{},{"name":84,"clientId":386,"parentClientId":75,"renderedHtml":387,"attributes":388},"6a8e6cd16cb68","\n\u003Cp class=\"wp-block-paragraph\">Now you’re going to install the CUDA backend for torch.\u003C\u002Fp>\n",{},{"name":84,"clientId":390,"parentClientId":75,"renderedHtml":391,"attributes":392},"6a8e6cd16cb69","\n\u003Cp class=\"wp-block-paragraph\">Run this command:\u003C\u002Fp>\n",{},{"name":210,"clientId":394,"parentClientId":75,"renderedHtml":395,"attributes":396},"6a8e6cd16cb6a","\n\u003Cpre class=\"wp-block-code\">\u003Ccode>luarocks install cutorch\u003C\u002Fcode>\u003C\u002Fpre>\n",{},{"name":84,"clientId":398,"parentClientId":75,"renderedHtml":399,"attributes":400},"6a8e6cd16cb6b","\n\u003Cp class=\"wp-block-paragraph\">and then this:\u003C\u002Fp>\n",{},{"name":210,"clientId":402,"parentClientId":75,"renderedHtml":403,"attributes":404},"6a8e6cd16cb6c","\n\u003Cpre class=\"wp-block-code\">\u003Ccode>luarocks install cunn\u003C\u002Fcode>\u003C\u002Fpre>\n",{},{"name":84,"clientId":406,"parentClientId":75,"renderedHtml":407,"attributes":408},"6a8e6cd16cb6d","\n\u003Cp class=\"wp-block-paragraph\">Run this to check and see if the installation has worked:\u003C\u002Fp>\n",{},{"name":210,"clientId":410,"parentClientId":75,"renderedHtml":411,"attributes":412},"6a8e6cd16cb6e","\n\u003Cpre class=\"wp-block-code\">\u003Ccode>th -e &quot;require &#039;cutorch&#039;; require &#039;cunn&#039;; print(cutorch)&quot;\u003C\u002Fcode>\u003C\u002Fpre>\n",{},{"name":84,"clientId":414,"parentClientId":75,"renderedHtml":415,"attributes":416},"6a8e6cd16cb6f","\n\u003Cp class=\"wp-block-paragraph\">And then you’ll see an output sorta like this:\u003C\u002Fp>\n",{},{"name":210,"clientId":418,"parentClientId":75,"renderedHtml":419,"attributes":420},"6a8e6cd16cb70","\n\u003Cpre class=\"wp-block-code\">\u003Ccode>{\n  getStream : function: 0x40d40ce8\n  getDeviceCount : function: 0x40d413d8\n  setHeapTracking : function: 0x40d41a78\n  setRNGState : function: 0x40d41a00\n  getBlasHandle : function: 0x40d40ae0\n  reserveBlasHandles : function: 0x40d40980\n  setDefaultStream : function: 0x40d40f08\n  getMemoryUsage : function: 0x40d41480\n  getNumStreams : function: 0x40d40c48\n  manualSeed : function: 0x40d41960\n  synchronize : function: 0x40d40ee0\n  reserveStreams : function: 0x40d40bf8\n  getDevice : function: 0x40d415b8\n  seed : function: 0x40d414d0\n  deviceReset : function: 0x40d41608\n  streamWaitFor : function: 0x40d40a00\n  withDevice : function: 0x40d41630\n  initialSeed : function: 0x40d41938\n  CudaHostAllocator : torch.Allocator\n  test : function: 0x40ce5368\n  getState : function: 0x40d41a50\n  streamBarrier : function: 0x40d40b58\n  setStream : function: 0x40d40c98\n  streamBarrierMultiDevice : function: 0x40d41538\n  streamWaitForMultiDevice : function: 0x40d40b08\n  createCudaHostTensor : function: 0x40d41670\n  setBlasHandle : function: 0x40d40a90\n  streamSynchronize : function: 0x40d41590\n  seedAll : function: 0x40d414f8\n  setDevice : function: 0x40d414a8\n  getNumBlasHandles : function: 0x40d409d8\n  getDeviceProperties : function: 0x40d41430\n  getRNGState : function: 0x40d419d8\n  manualSeedAll : function: 0x40d419b0\n  _state : userdata: 0x022fe750\n}\u003C\u002Fcode>\u003C\u002Fpre>\n",{},{"name":84,"clientId":422,"parentClientId":75,"renderedHtml":423,"attributes":424},"6a8e6cd16cb71","\n\u003Cp class=\"wp-block-paragraph\">Finally you can use GPU to run the neural network!\u003C\u002Fp>\n",{},{"name":84,"clientId":426,"parentClientId":75,"renderedHtml":427,"attributes":428},"6a8e6cd16cb72","\n\u003Cp class=\"wp-block-paragraph\">Check it using this command:\u003C\u002Fp>\n",{},{"name":210,"clientId":430,"parentClientId":75,"renderedHtml":431,"attributes":432},"6a8e6cd16cb73","\n\u003Cpre class=\"wp-block-code\">\u003Ccode>th neural_style.lua -gpu 0 -print_iter 1\u003C\u002Fcode>\u003C\u002Fpre>\n",{},{"name":84,"clientId":434,"parentClientId":75,"renderedHtml":435,"attributes":436},"6a8e6cd16cb74","\n\u003Cp class=\"wp-block-paragraph\">if that doesn’t work then…. well something went wrong. Never fear! remember the lessons I wrote above on asking for help. Reach out to people!\u003C\u002Fp>\n",{},{"name":84,"clientId":438,"parentClientId":75,"renderedHtml":439,"attributes":440},"6a8e6cd16cb75","\n\u003Cp class=\"wp-block-paragraph\">Last week was \u003Ca href=\"https:\u002F\u002Fwww.jackalope.tech\u002Fhow-artists-can-set-up-their-own-neural-network-part-1-installation\u002F\">how to install Ubuntu\u003C\u002Fa>. Next week will be how to run the bash scripts to use DeepStyle. The week after that I’ll go over the actual process I have for taking the imagery created by the program and painting new paintings using Photoshop.\u003C\u002Fp>\n",{},{"name":84,"clientId":442,"parentClientId":75,"renderedHtml":443,"attributes":444},"6a8e6cd16cb76","\n\u003Cp class=\"wp-block-paragraph\">I’ve also got a couple of spin off articles I want to write going over more specific aspects of the process, and some even further afield spinoffs on the meaning this technology has for art at large. If you have any questions or requests for articles let me know! And don’t forget to \u003Ca href=\"https:\u002F\u002Fmailchi.mp\u002Ff75162f1141a\u002Fdesign-x-code_newsletter\">\u003Cstrong>subscribe to the newsletter!\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n",{},"\u003Cpre class=\"shiki midnight\" style=\"background-color:#0818a0;color:#e0eaff\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>cd ~\u002F\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki midnight\" style=\"background-color:#0818a0;color:#e0eaff\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>curl -s https:\u002F\u002Fraw.githubusercontent.com\u002Ftorch\u002Fezinstall\u002Fmaster\u002Finstall-deps | bash\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki midnight\" style=\"background-color:#0818a0;color:#e0eaff\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>git clone https:\u002F\u002Fgithub.com\u002Ftorch\u002Fdistro.git ~\u002Ftorch --recursive\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki midnight\" style=\"background-color:#0818a0;color:#e0eaff\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>cd ~\u002Ftorch; .\u002Finstall.sh\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki midnight\" style=\"background-color:#0818a0;color:#e0eaff\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>sudo apt-get install libprotobuf-dev protobuf-compiler\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki midnight\" style=\"background-color:#0818a0;color:#e0eaff\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>luarocks install loadcaffe\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki midnight\" style=\"background-color:#0818a0;color:#e0eaff\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>git clone https:\u002F\u002Fgithub.com\u002Fjcjohnson\u002Fneural-style.git\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki midnight\" style=\"background-color:#0818a0;color:#e0eaff\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>cd neural-style\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki midnight\" style=\"background-color:#0818a0;color:#e0eaff\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>sh models\u002Fdownload_models.sh\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki midnight\" style=\"background-color:#0818a0;color:#e0eaff\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>th neural_style.lua -gpu -1 -print_iter 1\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki midnight\" style=\"background-color:#0818a0;color:#e0eaff\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>[libprotobuf WARNING google\u002Fprotobuf\u002Fio\u002Fcoded_stream.cc:505] Reading dangerously large protocol message.  If the message turns out to be larger than 1073741824 bytes, parsing will be halted for security reasons.  To increase the limit (or to disable these warnings), see CodedInputStream::SetTotalBytesLimit() in google\u002Fprotobuf\u002Fio\u002Fcoded_stream.h.\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>[libprotobuf WARNING google\u002Fprotobuf\u002Fio\u002Fcoded_stream.cc:78] The total number of bytes read was 574671192\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>Successfully loaded models\u002FVGG_ILSVRC_19_layers.caffemodel\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>conv1_1: 64 3 3 3\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>conv1_2: 64 64 3 3\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>conv2_1: 128 64 3 3\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>conv2_2: 128 128 3 3\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>conv3_1: 256 128 3 3\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>conv3_2: 256 256 3 3\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>conv3_3: 256 256 3 3\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>conv3_4: 256 256 3 3\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>conv4_1: 512 256 3 3\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>conv4_2: 512 512 3 3\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>conv4_3: 512 512 3 3\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>conv4_4: 512 512 3 3\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>conv5_1: 512 512 3 3\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>conv5_2: 512 512 3 3\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>conv5_3: 512 512 3 3\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>conv5_4: 512 512 3 3\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>fc6: 1 1 25088 4096\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>fc7: 1 1 4096 4096\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>fc8: 1 1 4096 1000\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>WARNING: Skipping content loss\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>Iteration 1 \u002F 1000\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  Content 1 loss: 2091178.593750\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  Style 1 loss: 30021.292114\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  Style 2 loss: 700349.560547\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  Style 3 loss: 153033.203125\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  Style 4 loss: 12404635.156250\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  Style 5 loss: 656.860304\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  Total loss: 15379874.666090\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>Iteration 2 \u002F 1000\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  Content 1 loss: 2091177.343750\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  Style 1 loss: 30021.292114\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  Style 2 loss: 700349.560547\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  Style 3 loss: 153033.203125\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  Style 4 loss: 12404633.593750\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  Style 5 loss: 656.860304\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  Total loss: 15379871.853590\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki midnight\" style=\"background-color:#0818a0;color:#e0eaff\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>nvidia-smi;\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki midnight\" style=\"background-color:#0818a0;color:#e0eaff\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>Sun Sep  6 14:02:59 2015       \u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>+------------------------------------------------------+                       \u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>| NVIDIA-SMI 346.96     Driver Version: 346.96         |                       \u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>|-------------------------------+----------------------+----------------------+\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>| Fan  Temp  Perf  Pwr:Usage\u002FCap|         Memory-Usage | GPU-Util  Compute M. |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>|===============================+======================+======================|\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>|   0  GeForce GTX TIT...  Off  | 0000:01:00.0      On |                  N\u002FA |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>| 22%   49C    P8    18W \u002F 250W |   1091MiB \u002F 12287MiB |      3%      Default |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>+-------------------------------+----------------------+----------------------+\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>|   1  GeForce GTX TIT...  Off  | 0000:04:00.0     Off |                  N\u002FA |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>| 29%   44C    P8    27W \u002F 189W |     15MiB \u002F  6143MiB |      0%      Default |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>+-------------------------------+----------------------+----------------------+\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>|   2  GeForce GTX TIT...  Off  | 0000:05:00.0     Off |                  N\u002FA |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>| 30%   45C    P8    33W \u002F 189W |     15MiB \u002F  6143MiB |      0%      Default |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>+-------------------------------+----------------------+----------------------+\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>                                                                               \u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>+-----------------------------------------------------------------------------+\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>| Processes:                                                       GPU Memory |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>|  GPU       PID  Type  Process name                               Usage      |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>|=============================================================================|\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>|    0      1277    G   \u002Fusr\u002Fbin\u002FX                                     631MiB |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>|    0      2290    G   compiz                                         256MiB |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>|    0      2489    G   ...s-passed-by-fd --v8-snapshot-passed-by-fd   174MiB |\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>+-----------------------------------------------------------------------------+\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki midnight\" style=\"background-color:#0818a0;color:#e0eaff\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>luarocks install cutorch\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki midnight\" style=\"background-color:#0818a0;color:#e0eaff\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>luarocks install cunn\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki midnight\" style=\"background-color:#0818a0;color:#e0eaff\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>th -e \"require 'cutorch'; require 'cunn'; print(cutorch)\"\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki midnight\" style=\"background-color:#0818a0;color:#e0eaff\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>{\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  getStream : function: 0x40d40ce8\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  getDeviceCount : function: 0x40d413d8\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  setHeapTracking : function: 0x40d41a78\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  setRNGState : function: 0x40d41a00\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  getBlasHandle : function: 0x40d40ae0\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  reserveBlasHandles : function: 0x40d40980\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  setDefaultStream : function: 0x40d40f08\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  getMemoryUsage : function: 0x40d41480\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  getNumStreams : function: 0x40d40c48\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  manualSeed : function: 0x40d41960\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  synchronize : function: 0x40d40ee0\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  reserveStreams : function: 0x40d40bf8\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  getDevice : function: 0x40d415b8\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  seed : function: 0x40d414d0\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  deviceReset : function: 0x40d41608\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  streamWaitFor : function: 0x40d40a00\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  withDevice : function: 0x40d41630\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  initialSeed : function: 0x40d41938\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  CudaHostAllocator : torch.Allocator\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  test : function: 0x40ce5368\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  getState : function: 0x40d41a50\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  streamBarrier : function: 0x40d40b58\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  setStream : function: 0x40d40c98\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  streamBarrierMultiDevice : function: 0x40d41538\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  streamWaitForMultiDevice : function: 0x40d40b08\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  createCudaHostTensor : function: 0x40d41670\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  setBlasHandle : function: 0x40d40a90\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  streamSynchronize : function: 0x40d41590\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  seedAll : function: 0x40d414f8\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  setDevice : function: 0x40d414a8\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  getNumBlasHandles : function: 0x40d409d8\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  getDeviceProperties : function: 0x40d41430\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  getRNGState : function: 0x40d419d8\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  manualSeedAll : function: 0x40d419b0\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>  _state : userdata: 0x022fe750\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki midnight\" style=\"background-color:#0818a0;color:#e0eaff\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>th neural_style.lua -gpu 0 -print_iter 1\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",1787718861266]