Placeholder Image

字幕列表 影片播放

  • BIOGRAPHY

  • BIOGRAPHY. >> WELL, THE CHAT IS VERY SMALL,

  • I WANTED TO SEE YOU AND HEAR YOU, HALF THE TIME, I SET UP MY

  • MIC INCORRECTLY. WELCOME TO A SPECIAL FRIDAY TRAINING EPISODE,

  • I'M DAN SHIFFMAN, THERE'S A LOT OF THINGS THAT ARE EXCITING

  • ABOUT THIS EPISODE. SO SOMEBODY SAID HI, SO I'M

  • GOING TO TAKE THAT AS THINGS ARE WORKING. AND SO TODAY IS A

  • SPECIAL EPISODE. NUMBER ONE, WE ARE DOING A MACHINE LEARNING

  • PROJECT FROM START TO FINISH, TRAINING A MODEL ENTIRELY IN THE

  • CLOUD, GETTING THAT TRAINING MODEL BACK, AND THEN

  • IMPLEMENTING THAT MODEL IN THE BROWSER USING JAVASCRIPT. SO

  • ALL THOSE PIECES, THAT IS GOING TO HAPPEN, AND THE WHOLE THING

  • IS GOING TO TAKE AN HOUR AND A HALF. TO PRESENT ALL OF THIS TO

  • YOU, WE HAVE A GUEST. YINING SHI, YOU MIGHT REMEMBER HER FROM

  • THE CODING TRAIN TUTORIAL THAT SHE MADE, I WILL LINK HER, SHE

  • IS AN ARTIST AND RESEARCHER, A CORE CONTRIBUTOR FOR THE MACHINE

  • LEARNING 5 LIBRARY, THE ML5.JS LIBRARY, PART OF THIS TUTORIAL,

  • SHE WROTE THE STYLE TRANSFER MODULE OF ML5.JS, AND THAT IS

  • WHAT SHE IS GOING TO DO AND PRESENT. SO YINING WILL BE HERE

  • IN A MINUTE, AFTER MY LONG INTRODUCTION. AND THIS VIDEO IS

  • SPONSORED BY SPELL, SPELL IS A CLOUD COMPUTING FOR MACHINE

  • LEARNING SERVICE. I DID AN INTRODUCTION TO SPELL, HOW TO

  • SET IT UP, WHAT IT DOES, WHAT ARE THE BASIC COMMANDS. IF YOU

  • ARE WATCHING THIS AS AN ARCHIVE, YOU MIGHT WANT TO WATCH IT FIRST

  • AND RETURN. IF YOU ARE WATCHING THIS LIVE, HAVE NOT SEEN THAT,

  • WE WILL HELP YOU GET SET UP WITH THAT. IF YOU WANT TO SIGN UP

  • FOR AN CCOUNT AND FOLLOW ALONG, YOU CAN GET $100 IN FREEBIES.

  • YOU CAN GO TO SPELL.RUN/CODINGTRAIN.

  • OKAY, AND ALSO, THANK YOU TO

  • SPELL, I'M -- SO WE HAVE CLOSED CAPTIONING, FOR THE FIRST TIME,

  • I'M USING

  • REALP TIME HUMAN WRITTEN CAPTIONED GENERATED BY WHITE

  • COAT CAPTIONING. YOUTUBE HAS AUTO CAPTIONS, BUT THIS IS TYPED

  • BY A PROFESSIONAL CAPTIONER IN REALTIME AS I'M SPEAKING, I

  • THINK. THIS REMINDS ME OF THE ELEPHANT

  • AND PIGGY BOOK, WHICH IS -- YOU ARE IN A BOOK, AND THE

  • CHARACTERS -- THEY CAN MAKE THE CHARACTERS SAY WHATEVER THEY

  • WANT. I CAN MAKE THE CAPTIONER TYPE BLUEBERRY, MANGO,

  • WATERMELON, THOSE WORDS SHOULD BE APPEARING. SO THANK YOU TO

  • SPELL.RUN FOR THE SPONSORSHIP, THANK YOU TO YINING FOR BEING

  • HERE, AND THANK YOU TO WHITE COAT CAPTIONING FOR THE

  • CAPTIONING SERVICES AND TO SPELL FOR PROVIDING THE FUNDS FOR

  • THOSE. AND I WILL BE TO THE SIDE LOOKING FOR THE YOUTUBE

  • CHAT, I WILL TRY TO ANSWER THEM, AND MOSTLY WE WILL SAVE

  • QUESTIONS UNTIL THE END. IF THERE IS AN IMPORTANT KEY

  • QUESTION, I MIGHT INTERRUPT AND ASK THAT. AND ONE OTHER THING:

  • YINING WILL TELL YOU ABOUT THIS, BUT I CANNOT RESIST. TO TRAIN A

  • STYLE TENSOR MODEL ON THE CLOUD, WITH A GPU, IT TAKES A LONG

  • TIME. SO WE ARE LIKE A COOKING SHOW MECHANIC, WE'RE GOING TO

  • START THE TRAINING PROCESS AND THEN HAVE THE PRE-TRAINED MODEL

  • IN THE OVEN, FULLY BAKED, TO SHOW YOU HOW IT WORKS. IF YOU

  • WATCH THIS TUTORIAL, YOU WILL BE ABLE TO TRAIN YOUR OWN STILL

  • TRANSFER MACHINE LEARNING MODEL USING SPELL.RUN, AND IMPLEMENT

  • THAT MODEL IN THE

  • BROWSER. OKAY, SO I'M LOOKING IN THE

  • CHAT. THAT IS ALL OF MY INTRODUCTORY STUFF, YES. SO I

  • AM JUST GOING TO TRANSFER IT OVER TO YINING, I'M GOING TO

  • MUTE MY MICROPHONE, I WILL UNMUTE IT ONCE IN A WHILE ONCE I

  • HAVE SOMETHING IMPORTANT TO SAY. AND WE WILL GET STARTED, OKAY?

  • SPEAKER: THANK YOU SO MUCH. HI, I'M YINING, AND I'M EXCITED TO

  • BE HERE TODAY TO TALK ABOUT

  • STYLE TRANSFER. HERE.

  • AND I WANT TO THANK EVERYONE FOR WATCHING THIS VIDEO.

  • I HOPE YOU ENJOY THIS VIDEO.

  • LET'S GET STARTED! TODAY, WE ARE GOING TO TALK

  • ABOUT STYLE TRANSFER. WE ARE GOING TO DO FOUR THINGS

  • TODAY. WE WILL TALK ABOUT WHAT IS STYLE

  • TRANSFER, HOW DOES IT WORK, AND WE ARE GOING TO A PLATFORM

  • CALLED SPELL TO TRAIN A NEW STYLE TRANSFER MODEL, AND PORT

  • THE MODEL INTO ML5.JS TO CREATE A AN INTERACTIVE DEMO.

  • SPELL AND ML5JS ARE BOTH TOOLS

  • THAT MAKE ML MORE APPROACHABLE FOR A BROAD RANGE OF AUDIENCE.

  • FOR OUR PROJECT TODAY, ML5JS ALLOWS US TO RUN OUR MODEL IN

  • THE BROWSER. BY THE WAY, ML5.JS IS A

  • JAVASCRIPT LIBRARY BASED ON TENSORFLOW.JS. SO OUR MODEL

  • THAT WE HAVE TODAY WOULD ALSO WORK IN THE

  • TENSORFLOW.JS. AND SPELL PROVIDES COMPUTING

  • POWERS FOR US TO TRAIN A MODEL FASTER.

  • IF I TRAIN THE MODEL ON MY OWN

  • LAPTOP, IT MIGHT TAKE SEVERAL

  • DAYS, BUT WITH THE REMOTE GPU PROVIDED SPELL, IT WILL ONLY

  • TAKE A FEW HOURS. LET ME SHOW YOU WHAT ARE WE

  • GOING TO BUILD AT THE END OF THIS VIDEO.

  • THIS IS A DEMO: HTTPS://YINING1023.GITHUB.IO/

  • STYLETRANSFER_SPELL/. THIS DEMO READS THE IMAGES IT

  • GETS FROM OUR WEBCAM, AND TRANSFER THE STYLE OF THE IMAGE

  • INTO THE STYLE OF THIS ART WORK. THE STYLE IMAGE IS AN ANCIENT

  • CHINESE PAINTING CALLED FUCHUN SHANJU TU.

  • THE STYLE IMAGE DOESN'T HAVE TOO

  • MANY COLORS, BUT IF YOU TRAIN THE MODEL WITH OBVIOUS STYLE, IF

  • YOU USE THOSE STYLE IMAGES, YOU WILL GET A MORE OBVIOUS

  • RESULT. THIS IS THE DEMO THAT WE ARE

  • GOING TO BUILD

  • TODAY. BEFORE WE BUILD ANYTHING,

  • WHAT IS STYLE TRANSFER? STYLE TRANSFER IS THE TECHNIQUE

  • OF RECAST THE CONTENT OF ONE IMAGE IN THE STYLE OF ANOTHER

  • IMAGE.

  • FOR EXAMPLE, HERE IS A

  • PHOTOGRAPH, THIS TECHNIQUE CAN EXTRACT THE CONTENT OF THE

  • PHOTO, AND THE STYLE OF THIS ART

  • WORK, AND COMBINE THE TWO TO CREATE A NEW IMAGE.

  • HERE ARE MORE EXAMPLES.

  • SO, HOW DOES IT WORK? STYLE TRANSFER WAS FIRST

  • INTRODUCED IN THE PAPER A NEURAL ALGORITHM OF ARTISTIC STYLE IN

  • 2015 BY GATYS.

  • IN THE PAPER, THEY PROPOSED A SYSTEM THAT USES CONVOLUTIONAL

  • NEURAL NETWORKS TO SEPARATE AND

  • RECOMBINE CONTENT AND STYLE OF ARBITRARY IMAGES.

  • BY THE WHY, AN

  • COLUSIONAL NEURAL NETWORK IS A DEEP NEURAL NETWORK USED TO

  • ANALYZE IMAGES. THE IDEA IS THAT IF WE TAKE A

  • CONVOLUTIONAL NEURAL NETWORK THAT IS TRAINED TO RECOGNIZE

  • OBJECTS WITHIN IMAGES THEN THAT

  • NETWORK HAS DEVELOPED SOME

  • INTERNAL REPRESENTATIONS OF THE CONTENT AND STYLE OF AN IMAGE.

  • MORE IMPORTANTLY, THE PAPER

  • FINDS THAT THE REPRESENTATIONS

  • IN THE IMAGE CAN BE

  • SEPARATED. WE CAN TAKE THE CONTENT AND

  • STYLE IN ONE

  • IMAGE AND ARE SEPARABLE, WHICH MEANS WE CAN TAKE THE CONTENT

  • REPRESENTATION FROM ONE IMAGE AND STYLE REPRESENTATION FROM

  • ANOTHER TO GENERATE A BRAND NEW IMAGE.

  • THE CNN THAT GATYS USED IS CALLED VGG. IT'S A NETWORK

  • CREATED BY THE VISUAL GEOMETRY GROUP AT OXFORD UNIVERSITY.

  • THIS CNN IS THE WINNER OF IMAGENET, AN OBJECT RECOGNITION

  • CHALLENGE IN 2014.

  • WE WILL SEE THE NAME VGG AGAIN WHEN WE TRAIN THE MODEL.

  • THAT'S BECAUSE WE ARE TRYING TO

  • GET REPRESENTATIONS OF AN IMAGE

  • FROM THIS VGG CONVOLUTIONAL

  • NEURAL NETWORK. NEXT, CONVOLUTIONAL NEURAL

  • NETWORKS LOOK LIKE

  • FILTERS, DIFFERENT LAYER HAS DIFFERENT REPRESENTATIONS OF AN

  • IMAGE. AN INPUT IMAGE CAN BE

  • REPRESENTED AS A SET OF FILTERED IMAGES AT EACH LAYER IN THE CNN.

  • WE CAN VISUALISE THE INFORMATION AT DIFFERENT LAYERS IN THE CNN

  • BY RECREATE THE INPUT IMAGE FROM ONE OF THE FILTERED IMAGE.

  • WE CAN SEE THAT IMJ

  • A, B, C, D, E ARE THE RECREATED IMAGES.

  • THEY ARE ALMOST

  • PERFECT. AS THE LEVEL GETS HIGHER AND

  • HIGHER, ALL OF THOSE DETAILED PIXEL INFORMATION IS LOST, BUT

  • THE HIGH LEVEL CONTENT OF THIS IMAGE IS STILL HERE.

  • FOR EXAMPLE, FOR THIS IMAGE E HERE, GIVEN THAT WE CANNOT SEE

  • IT CLEARLY, BUT WE CAN SEE THAT -- HERE'S A HOUSE, THIS IMAGE.

  • SO THIS IS HOW CONTENT REPRESENTATION LOOKS LIKE IN

  • THIS NETWORK. NEXT, WE WILL TALK ABOUT STYLE

  • REPRESENTATION.

  • ON TOP OF THE ORIGINAL CNN CONVOLUTIONAL NEURAL NETWORK,

  • REPRESENTATIONS THEY BUILT A NEW FEATURE SPACE THAT CAPTURES THE

  • STYLE OF AN INPUT IMAGE. THE STYLE REPRESENTATION

  • COMPUTES CORRELATIONS BETWEEN THE DIFFERENT FEATURES IN

  • DIFFERENT LAYERS OF THE CNN.

  • FOR DETAILED IMPLEMENTATION, WE CAN CHECK THE PAPER.

  • BUT AS THE LEVEL GETS HIGHER AND HIGHER, WE FIND THAT THEY

  • RECREATE THE STYLE OF THE INPUT IMAGE FROM STYLE

  • MATCHES THIS ARTWORK BETTER AND BETTER, BUT THE INFORMATION OF

  • THE GLOBAL ARRANGEMENT OF THE SCENE IS LOST.

  • FOR EXAMPLE, FOR IMAGE D AND E, THE STYLE IS VERY CLEAR TO US

  • NOW. BUT WE CANNOT SEE IF THERE'S A HOUSE ON THIS PHOTO

  • ANYMORE, BECAUSE THE CONTENT REPRESENTATION IS

  • LOST. AND THEN AFTER WE HAVE THE

  • CONTENT REPRESENTATION OF THE PHOTO, AND THE STYLE

  • REPRESENTATION OF THIS ART WORK, AND WE'RE GOING TO SYNTHESIZE

  • A NEW IMAGE THAT CAN MATCH THOSE TWO AT THE SAME TIME. THIS IS

  • HOW STYLE TRANSFER

  • WORKS. AND JANE COGEN, THE CREATOR OF

  • MACHINE LEARNING FOR ARTISTS, HE MAKES THIS AMAZING DEMO VIDEO

  • THAT TALKS ABOUT WHAT'S A CONVOLUTIONAL NEURAL NETWORK,

  • AND HOW IT SEES EACH LAYER,O YOU SO YOU WILL HAVE A BETTER

  • UNDERSTANDING OF HOW THIS CONVOLUTIONAL NEURAL NETWORK

  • SEES IMAGES AND HOW IT FILTERS OUT THE IMAGE AND GETS THE

  • REPRESENTATION OUT OF ONE IMAGE AFTER WATCHING HIS

  • VIDEO. O I HIGHLY RECOMMEND THAT YOU

  • WATCH HIS

  • VIDEO. AND GATYS'S PAPER OPENED UP A

  • NEW AREA OF RESEARCH, AND DIFFERENT KINDS OF TRANSFER

  • APPEARED IN THE LAST THREE YEARS.

  • WE ARE GOING TO TAKE A LOOK AT A FEW OF THEM HERE.

  • AND THEN WE ARE GOING

  • TO DIVE INTO TRAINING YOUR STYLE TRANSFER MODEL WITH

  • SPELL. IN 2016, THIS

  • PAPER CAME OUT. IT IS CALLED A FAST STYLE

  • TRANSFER, IT SHOWS THAT A NEURAL NETWORK CAN APPLY A FIXED STYLE

  • TO ANY INPUT IMAGE IN

  • REALTIME. IT BUILDS ON THE

  • GATYS STYLE TRANSFER MODEL, BUT IT IS A LOT FASTER. THIS FAST

  • STYLE

  • TRANSFER HAS AN IMAGE TRANSFORMATION NETWORK AND A

  • LOSS CALCULATION NETWORK TO TRAIN THIS NETWORK. WE NEED TO

  • PICK A FIXED STYLE IMAGE AND USE A LARGE BATCH OF DIFFERENT

  • CONTENT IMAGE AS TRAINING EXAMPLES. SO, IN THEIR PAPER,

  • THEY TRAINED THEIR NETWORK, THIS MICROSOFT COCO DATASET, WHICH IS

  • AN OBJECT RECOGNITION DATASET OF 18,000

  • IMAGES. TODAY, WE WILL USE A TENSORFLOW IMPLEMENTATION OF

  • THIS STYLE TRANSFER, SO WE ARE ALSO GOING TO USE THIS COCO

  • DATASET. WE ARE GOING TO DOWNLOAD THIS DATASTYLE LATER.

  • AND HERE IS AN IMAGE FROM

  • THEIR PAPER. THIS IS THE ORIGINAL PHOTO, THIS

  • GATYS RESULT AND THIS IS THE STYLE TRANSFER RESULT AND IT

  • WORKS A LOT FASTER. AND THE NEXT STYLE TRANSFER IS

  • FOR VIDEOS. THIS MODEL CAME OUT IN 2016,

  • TOO. WE MAY THINK WE KNOW HOW TO

  • TRANSFER IMAGES, FOR VIDEOS, WE CAN JUST TRANSFER THE FRAME --

  • EACH FRAME OF THE VIDEO ONE BY ONE AND THEN STITCH THOSE IMAGES

  • TOGETHER TO MAKE A

  • TRANSFER

  • VIDEO. BUT IF WE DO THAT, WE CAN SEE

  • THE RESULT IS NOT GOOD BECAUSE

  • THE VIDEO WILL FLICKER A LOT, BECAUSE MACHINE DOESN'T KNOW ANY

  • INFORMATION ABOUT THE PREVIOUS IMAGE.

  • SO YOU CAN SEE, IF WE JUST DO THAT, THE VIDEO WILL FLICKER

  • A LOT. THE PAPER IMPROVED

  • FRAME-TO-FRAME STABILITY BY ADDING AN OPTICAL-FLOW ALGORITHM

  • THAT TELLS THE MACHINE THE

  • POSSIBLE MOTIONS FROM FRAME TO FRAME.

  • IT'S ALSO CALLED TEMPORALLY

  • COHERENT, SO THE TRANSFERRED

  • VIDEO WOULDN'T BE FLICKERING TOO MUCH.

  • SO WE CAN SEE SOME RESULTS HERE. THIS VIDEO IS NOT FLICKERING AT

  • ALL. AND THEY GOT AMAZING RESULTS FROM THEIR

  • MODEL. THIS IS THE TRANSFERRED VIDEO,

  • THE RESULT LOOKS

  • GREAT.

  • LET'S GO TO THE NEXT

  • MODEL. THIS IS A VERY COOL MODEL

  • APPEARED IN 2017, IT'S CALLED

  • DEEP PHOTO TRANSFER: THE STYLE

  • TRANSFER WE SAW SO FAR WORK REALLY WELL IF WE ARE LOOKING

  • FOR SOME ARTISTIC PAINTING RESULTS, BUT THEY ADD SOME

  • DISTORTION TO THE INPUT IMAGE. THEY DON'T LOOK REALISTIC.

  • BUT THIS DEEP PHOTO TRANSFER CAN

  • PRODUCE REALISTIC PHOTOS.

  • THIS INPUT IMAGE ON THE LEFT, AND IN THE MIDDLE, THIS IS THE

  • STYLE IMAGE, AND THEN ON THE RIGHT, THIS IS THE OUTPUT IMAGE.

  • THE OUTPUT IMAGE LOOKS LIKE A REGULAR PHOTO TO ME, SO THE

  • RESULT IS ALWAYS SUPER

  • GOOD. THEY USED AFFINE TRANSFORMATION

  • TO MAKE SURE THAT THE SHAPES ARE NOT DISTORTED DURING

  • TRANSFORMATION. THE RESULT IS AMAZING.

  • THIS IS THE NEXT STYLE TRANSFER. THIS IS SEMANTIC STYLE TRANSFER:

  • IT CAN PRODUCE SEMANTICALLY MEANINGFUL RESULTS, THE MACHINE

  • HAS AN UNDERSTANDING OF THE OBJECTS ON THE IMAGE.

  • IN THIS EXAMPLE, THE MACHINE RECOGNIZE THAT BOTH IMAGES HAVE

  • NOSE, SO IT USES THIS INFORMATION IN THE

  • TRANSFORMATION PROCESS.

  • THERE ARE A LOT OF APPLICATIONS

  • OF THIS MODEL, FOR EXAMPLE, YOU CAN USE IT TO CONVERT A SKETCH

  • OR A PAINTING TO A PHOTO.

  • I THINK THE OUTPUT IS PRETTY GOOD.

  • THIS IS SEMANTIC STYLE TRANSFER. THE LAST STYLE TRANSFER IS VERY

  • SPECIAL. IT'S UNIVERSAL NEURAL STYLE

  • TRANSFER: ALMOST ALL PREVIOUS

  • STYLE TRANSFER, THERE ARE SOME

  • ABSTRACT STYLE IMAGES THAT DON'T WORK WELL.

  • IF THE STYLE IMAGE IS VERY

  • DIFFERENT FROM THE TRAINING IMAGES, THE RESULTS WON'T BE

  • VERY GOOD.

  • FOR EXAMPLE, IF IT IS A BLACK LINE WITH A WHITE BACKGROUND.

  • IF WE TRAIN TOO MANY IMAGES, YOU CANNOT GET A LOT OF INFORMATION

  • FROM THE LINE BECAUSE IT TRAINED A LOT OF OBJECTS.

  • BUT THIS MODEL CAN SOLVE THIS MODEL.

  • THIS NEW MODEL IS ALSO BASED ON NN, BUT DOESN'T NEED TO BE

  • TRAINED ON THESE IMAGES, IT

  • WORKS ON ANY ARBITRARY STYLE.

  • IT USES AUTO-ENCODER, IT HAS A

  • ENCODE AND DECODE PROCESS.

  • SO WE PUT THE INPUT IMAGE IN, WE ENCODE IT, AND AFTER WE DECODE

  • IT, IT CAN GIVE BACK THE

  • IMAGE. IT USE THE ENCODE PART ON BOTH

  • INPUT IMAGE AND STYLE IMAGE,

  • THEN USE THE DECODER TO DECODE THE COMPRESSED VERSION OF THE

  • BOTH INPUT AND STYLE IMAGE. IN THE END, YOU CAN GET THIS

  • RESULT. THIS IS TRULY AMAZING, I THINK

  • IN THE FUTURE, WE CAN PORT IT TO ML5JS AND PLAY WITH IT.

  • HERE ARE THE STYLE TRANSFER MODELS THAT THEY

  • TALK ABOUT. TODAY, WE ARE USING THE

  • TENSORFLOW IMPLEMENTATION THAT IS A COMBINATION OF GATYS' STYLE

  • TRANSFER, FAST-STYLE-TRANSFER, AND ULYANOV'S INSTANCE

  • NORMALIZATION. THIS TENSORFLOW IMPLEMENTATION

  • OF FAST-STYLE-TRANSFER IS MADE BY LOGAN ENGSTROM.

  • MAKE SURE, IF WE USE THIS CODE, WE CAN GIVE CREDIT TO

  • HIM.

  • NOW, FINALLY, WE ARE GOING TO USE SPELL TO TRAIN OUR OWN STYLE

  • TRANSFER MODEL.

  • THERE ARE 4 STEPS THAT WE NEED TO DO.

  • PREPARING THE ENVIRONMENT DOWNLOADING DATASETS

  • BECAUSE WE USED THE VGG MODEL AND THE COCO DATASET, IT IS

  • LARGE, AND SO IT MIGHT TAKE AN HOUR TO FINISH THIS ONE, AND

  • THEN WE'RE GOING TO RUN THIS STYLE PYTHON SCRIPT TO TRAIN THE

  • MODEL. I THINK IT WILL TAKE ABOUT TWO

  • HOURS AND SIX MINUTES, AND THEN IN THE END, WE'RE GOING TO

  • CONVERT THIS TENSORFLOW SAVED MODEL INTO A FORMAT THAT WE CAN

  • USE IN TENSORFLOW.JS AND ML5.JS. AND HERE IS THE

  • DETAILED INSTRUCTION HERE. IF YOU ARE CURIOUS, WE YOU CAN

  • READ THE READ ME THERE. HAHA

  • >> THERE WE

  • GO. SPEAKER: FOR STEPS FOR

  • 1-3, YOU CAN CHECK OUT THE

  • TUTORIAL. AND YOU CAN FIND A STEP BY STEP

  • INSTRUCTION HERE: I'M GOING TO SWITCH TO THIS PAGE, CAN FOLLOW

  • THE INSTRUCTIONS HERE. I'M GOING TO TALK ABOUT THAT

  • LATER. FIRST FIRST, WE WILL TRAIN THE

  • STYLE TRANSFER MODEL ON THE

  • SPELL.

  • I WILL GO TO AN EMPTY

  • FOLDER. >> LIKE THIS?

  • >> I THINK THAT'S

  • GOOD, YES. >> THE FIRST STEP IS TO SET UP

  • THE ENVIRONMENT. SO WE'RE GOING TO GO TO OUR TERMINAL AND WE CAN

  • GO TO ONE OF THE DIRECTORIES. WE CAN FIND A FOLDER, SO ON MY

  • COMPUTER, I WILL JUST GO TO

  • CDDEV/LIVESTREAM. THERE IS AN EMPTY FOLDER AND NOT

  • ANYTHING THERE

  • YET. FIRST I NEED TO INSTALL SPELL.

  • BEFORE I DO THAT, I NEED TO INSTALL PIP. IT IS A PACKAGE

  • MANAGEMENT SYSTEM FOR PYTHON. IT IS LIKE NPM FOR JAVASCRIPT.

  • >> I DON'T KNOW IF I'M MUTED OR NOT, BUT YOU SHOULD MOVE THE

  • BOTTOM WHERE YOU ARE TYPING HIGHER UP BECAUSE THE CAPTIONS

  • ARE COVERING IT. SO IF YOU CAN MAKE YOUR TERMINAL WINDOW GO --

  • YEAH, THAT WORKS

  • TOO.

  • THIS IS MY TERMINAL WINDOW. BEFORE I INSTALL SPELL, I NEED

  • TO INSTALL PIP, THE PACKAGE MANAGEMENT STYLE FOR PYTHON. IT

  • IS LIKE NPM FOR JAVASCRIPT. THE NODE PACKAGE MANAGEMENT. IF

  • YOU DON'T HAVE PIP INSTALLED, WE CAN DO IT TOGETHER. I THINK I

  • DID IT, SO IT IS FASTER FOR ME. SO I'M GOING TO SWITCH TO THIS

  • PAGE TO SEE ALL OF THOSE STEPS. SO FIRST, TO INSTALL THE PIP,

  • WE'RE GOING TO DOWNLOAD THIS -- WE WILL MAKE THIS BIGGER, TOO.

  • WE'RE GOING TO DOWNLOAD THIS GET PIP

  • PYTHON SCRIPT. SO WE WILL DOWNLOAD THIS GET PIP

  • PYTHON SCRIPT, AND NOW IF I TAKE A LOOK AT MY FOLDER, THERE'S A

  • GET PIP PYTHON SCRIPT. AND THEN, I'M JUST GOING TO RUN

  • MY

  • SCRIPT. PYTHON GET PIP.PY, IF YOU ARE

  • USING PYTHON 3, YOU CAN DO

  • PYTHON

  • 3..GET-PIP.PY. IF THIS IS THE FIRST TIME YOU HAVE INSTALLED

  • PIP, IT MIGHT TAKE A MINUTE. AND AFTER THIS IS SUCCESSFULLY

  • INSTALLED, WE'RE GOING TO PIP

  • INSTALL SPELL. I ALSO HAVE DONE THIS, SO IT

  • MIGHT BE FASTER FOR ME. SO HERE IT SAID ALL OF THE

  • REQUIREMENTS ARE SATISFIED BECAUSE I ALREADY DID IT ONCE.

  • SO NOW WE HAVE SPELL INSTALL ED, IF I TYPE IN SPELL, I SHOULD BE

  • ABLE TO SEE A SET OF COMMANDS THAT I CAN DO. I CAN DO SPELLCP

  • TO COPY A FILE, OR I CAN DO SPELLRUN TO RUN -- TO START A

  • NEW ONE. AND I CAN DO SPELL LOGGING TO

  • LOG INTO SPELL FROM MY LOCAL COMPUTER.

  • MY SPELL

  • USERNAME IS THIS, AND

  • MYMYPASSSWORD IS THIS. AND I AM SUCCESSFULLY LOGGED INTO SPELL.

  • AND I CAN ALSO DO SPELL, WHO AM I, TO CHECK WHO IS LOGGED INTO

  • SPELL AND IT SAYS THE USER NAME, THE EMAIL, CREATED AUGUST 13TH.

  • AND NOW WE HAVE SUCCESSFULLY SET UP SPELL, AND THEN WE CAN DO

  • PREPARE OUR ENVIRONMENT. AS I MENTIONED BEFORE, WE'RE

  • GOING TO USE THIS TENSORFLOW IMPLEMENTATION OF FAST STYLE

  • TRANSFER MADE BY LOGAN. SO NOW I'M GOING TO GO AHEAD AND

  • CLONE HIS

  • GITHUB REPOSITORY. SO I WILL DO GIT CLONE. AND

  • THEN I'M GOING TO GO TO HIS FOLDER, CD FAST STYLE TRANSFER.

  • AND NOW I'M HERE. THE NEXT STEP IS TO CREATE SOME

  • FOLDRSRS

  • RS AND PUT IN OUR STYLE IMAGE. FIRST, I WILL CREATE A FOLDER,

  • CKKP CHECKPOINT. I WILL CREATE A GIT IGNORE FILE INSIDE OF THE

  • FOLDER. AND I'M ALSO GOING TO CREATE A FOLDER CALLED IMAGES

  • HERE. AND I'M ALSO GOING TO CREATE

  • ANOTHER FOLDER INSIDE OF THE IMAGES CALLED STYLE.

  • THIS IS THE FOLDER WHERE OUR STYLE IMAGE IS

  • LIVING. IF I TAKE A LOOK AT THIS REPO,

  • THIS IS THE NEW FOLDER THAT WE JUST CREATED, AND THIS IS THE

  • NEW FOLDER THAT WE CREATED IMAGES.

  • AND THE NEXT STEP IS TO FIND A STYLE IMAGE THAT WE TRAIN THAT

  • CAN BE TRAINED

  • ON. AND WHEN WE ARE CHOOSING STYLE

  • IMAGES, WE NEED TO MAKE SURE NAT WE CAN USE THIS ARTWORK AND ALSO

  • WE CAN USE THAT

  • IMAGE BECAUSE WE NEED TO GIVE CREDIT TO THE IMAGES BECAUSE WE

  • DON'T WANT TO RUN INTO ANY COPYRIGHT

  • PROBLEM. I FOUND THIS PAINTING OF LOTUS

  • BY A CHINESE ARTIST NAMED

  • [SPEAKING IN CHINESE]. SO I GOT THIS IMAGE FROM

  • WIKIPEDIA, AND IF YOU HAVE ARTWORK THAT I CAN USE, YOU CAN

  • SHARE IT WITH ME AND I CAN TRAIN IT WITH SPELL AND SEND BACK THE

  • MODEL TO YOU IF YOU ALLOW ME TO USE YOUR

  • ARTWORK. IF THERE IS NO OTHER ARTWORK, WE

  • WILL TRAIN THIS AGAIN. I ALREADY TRAINED A MODEL ON THIS

  • IMAGE. >> THEY ARE BEHIND IN REALTIME,

  • I THINK YOU SHOULD PROBABLY MOVE FORWARD WITH THAT IMAGE, AND I

  • WILL SEE PEOPLE -- BECAUSE PEOPLE WILL DO THEIR OWN IMAGES

  • FOLLOWING ALONG, AND THEY WILL COME UP WITH A HASHTAG OR

  • SOMETHING IN THE END THAT PEOPLE CAN SHARE THEIR STYLE TRANSFER

  • MODELS ON TWITTER OR SOCIAL MEDIA. IT IS A GOOD PLACE TO

  • SHARE. >> OKAY, SOUNDS GOOD.

  • SO WE HAVE DECIDED TO USE THIS IMAGE. WHAT I'M GOING TO DO IS

  • TO PUT THIS IMAGE INTO

  • IMAGES/STYLE. SO I'M GOING TO GO

  • TO THE FOLD ER AND I'M GOING TO MAKE THIS

  • BIGGER. I DON'T THINK I CAN MAKE THIS

  • WINDOW BIGGER, BUT I CAN PUT THIS STYLE IMAGE INTO

  • IMAGES.STYLE. I'M GOING TO COPY THIS IMAGE,

  • THIS IMAGE IS CALLED

  • FUTRIN.JPG. I JUST COPIED THIS IMAGE HERE.

  • SO NOW WE HAVE OUR STYLE IMAGE. THE ONE THING THAT WE NEED TO DO

  • IS TO GET AT THOSE TWO FOLDERS, AND ALSO COMMIT THESE CHANGES TO

  • LET SPELL KNOW THAT WE MADE ALL THOSE CHANGES.

  • SO HERE I'M GOING TO DO GIT ADD IMAGES, AND ALSO ADD THAT FOLDER

  • CHECKPOINT. AND THEN I'M GOING TO COMMIT

  • THESE CHANGES. COOL. SO NOW WE HAVE PREPARED OUR ENVIRONMENT.

  • THIS IS DONE. WE CAN MOVE TO THE NEXT

  • STEP. WE NEED TO DOWNLOAD THE

  • DATASET.

  • IN ORDER TO TRAIN A MODEL, WE WILL NEED THE REQUIRED DATASETS.

  • FOR FAST STYLE TRANSFER THE

  • ARE IN THE STYLE SCRIPT, SO WE CAN DOWNLOAD THE FAST STYLE

  • TRANSFER GITHUB REPO

  • HERE. NEXT WE ARE GOING TO RUN THIS

  • SCRIPT

  • SETUP. AS YOU CAN SEE, IN HAD SETUP, WE

  • ARE GOING TO CREATE A FOLDER CALLED DATA AND THEN GO INTO

  • THAT DATA FOLDER AND THEN GET THIS -- THE VGG MODEL, THE

  • CONVOLUTIONAL NEURAL NETWORK MODEL, BACK. AND WE WILL ALSO

  • MAKE A FOLDER AND THEN DOWNLOAD THIS COCO

  • DATASET.

  • UNZIP THE COCO DATASET. TALKED ABOUT BEFORE, VGG IS CNN

  • FOR OBJECT RECOGNITION.

  • WE NEED IT TO GET REPRESENTATIONS OF THE IMAGE.

  • THAT'S WHY WE'RE GOING TO USE THIS VGG MODEL.

  • FAST-STYLE-TRANSFER USES COCO DATASET TO TRAIN THE NETWORK AND

  • OTHER OPTIMIZATION METHODS TO MAKE THE MODEL WORK IN

  • REAL-TIME. IT IS AN OBJECT RECOGNITION OF

  • 18,000 IMAGES, AND WE NEED TO USE THIS BECAUSE THIS COCO

  • DATASET IS HUGE. IT MIGHT TAKE A WHILE. BUT WE ARE JUST GOING

  • TO DO IT. SO THIS IS WHAT WE LOOK LIKE IN

  • THIS SETUP SCRIPT, AND NEXT WE ARE JUST GOING TO RUN THIS

  • SETUP. >> NEXT, WE ARE GOING TO RUN

  • THIS SETUP

  • SCRIPT. IN OUR TERMINAL, WE WILL DO

  • SPELL RUN, AND THIS IS THE SCRIPT THAT WE'RE GOING TO RUN.

  • BUT HERE, WE CAN ALSO SPECIFY THE MACHINE TYPE

  • BY USING THIS

  • FLAG//MACHINETYPE.CPU, IT IS FREE TO USE, SO WE ARE GOING TO

  • RUN THIS

  • SCRIPT.

  • NOW YOU CAN SEE THE EMOJI, 15, THIS NUMBER IS IMPORTANT TO US

  • BECAUSE LATER WE ARE GOING TO USE THE OUTPUT OF THIS RUN TO DO

  • OUR NEXT TRAINING RUN. SO IT MIGHT -- OH.

  • IT IS DOWNLOADING THIS VGG MODEL. LET ME MAKE IT A LITTLE

  • BIT

  • SMALLER. I THINK AFTER DOWNLOADING THE

  • VGG

  • MODEL, IT IS GOING TO DOWNLOAD THE COCO DATASET. BUT HERE, I'M

  • GOING TO DO CONTROL C TO EXIT. IT WOULDN'T STOP THIS RUN, IT

  • WOULD STOP PRINTING ALL THOSE LOGS.

  • I TRIED TO RUN THIS RUN ON SPELL AND IT TAKES ME ONE HOUR AND 30

  • MINUTES TO FINISH IT. I CAN ALSO LOG INTO SPELL TO SEE

  • MORE DETAILED INFORMATION ABOUT EACH RUN, BUT ALSO IN THE

  • TERMINAL, WE CAN DO SPELL PS. IT WILL LIST ALL OF THOSE RUNS

  • THAT I HAVE DONE

  • BEFORE. SO I HAVE 15 RUNS, AND THE LAST

  • ONE IS RUNNING, AND I AM -- AND THIS IS THE COMMIT THAT I PUT.

  • AND THIS IS THE MACHINE TYPE. WE ARE JUST USING CPU.

  • BUT WE CAN ALSO LOG INTO THE SPELL WEBSITE, AND HERE I CAN

  • CLICK ON THIS RUN. AND HERE I

  • CAN SEE ALL THOSE -- ALL THE INFORMATION ABOUT EACH RUN.

  • THIS IS THE RUN THAT WE JUST DID, RUN 15.

  • AND IT WILL OUTPUT A FOLDER CALLED DATA. THESE ARE THE

  • LOGS, AND THIS IS THE CPU USAGE,

  • CPU MEMORY, SO THIS RUN WILL TAKE ABOUT 1.5 HOURS.

  • BUT LUCKILY, WE HAVE ANOTHER COMPLETE RUN. I THINK IT IS RUN

  • 13. SO ON RUN 13, I RAN THE SAME COMMAND

  • SETUP HERE, AND IT IS ALREADY COMPLETED AND IT WILL OUTPUT A

  • FOLDER CALLED DATA, AND WE CAN CLICK ON THIS DATA TO SEE WHAT

  • KIND OF OUTPUT DID WE GET. WE WILL SEE THAT WE GOT THIS,

  • LET ME MAKE IT

  • BIGGER. WE HAVE THIS VGG MODEL, WE'VE

  • ALSO GOT THE COCO DATASET. HERE IT IS TRAIN 2014.

  • SO NEXT, WE'RE GOING TO USE THE OUTPUT FROM THIS RUN TO TRAIN

  • OUR MODEL.

  • WE FINISHED THE SECOND STEP, DOWNLOADING THE DATASET. AND

  • WE'RE GOING TO MOVE TO THE NEXT STEP, TRAINING WITH

  • SPELL SCRIPT. THIS IS THE COMMAND THAT WE'RE GOING TO RUN,

  • BUT LET'S TALK ABOUT THIS COMMAND BEFORE WE ACTUALLY

  • RUN IT. THIS COMMAND STARTS A NEW RUN,

  • AND IT USES

  • THE

  • DASH DASH MOUNT FLAG TO OUTPUT RUN 13. AND FOR 113, IT USES AN

  • OUTPUT FOLDER, DATA, AND WE'RE GOING TO USE THIS MOUNT FLAG TO

  • COPY THIS DATA FOLDER INTO THE FILE SYSTEM OF OUR NEXT RUN.

  • AND WE'RE GOING TO CALL THAT FOLDER DATASETS INSTEAD OF DATA.

  • SO THIS IS THE MOUNT COMMAND. WE CAN SEE MORE INFORMATION IN

  • SPELL'S DOCUMENTATION. AND THEN WE'RE GOING TO SPECIFY THE

  • MACHINE TYPE. I USED THE V100 MACHINE. WE CAN CHECK MORE

  • DETAILED MACHINE TYPE

  • HERE, THIS IS ON THE SPELL RUN/CORE CONCEPTS, YOU CAN TALK

  • ABOUT THE AVAILABLE MACHINE TYPES THAT YOU CAN USE, AND HERE

  • THERE'S A PRICING TABLE THAT LISTS ALL THE MACHINE STYLES

  • THAT WE CAN USE. THE ONE THAT I USED YESTERDAY IS

  • CALLED V100. AND NORMALLY, IT WOULD TAKE 12 HOURS TO TRAIN

  • THIS K18 MACHINE, AND IT WOULD TAKE FOUR HOURS TO TRAIN THIS

  • V100 MACHINE. BUT I TRIED IT FOUR TIMES, AND

  • IT ONLY TOOK ME TWO HOURS TO TRAIN ON THIS V100

  • MACHINE. THIS IS THE MACHINE TYPE.

  • AND THE NEXT COMMAND, WE SPECIFIED THE FRAMEWORK,

  • IT IS TENSORFLOW. WE WILL GET A PACKAGE, THOSE ARE TWO ACTUAL

  • PACKAGES, THEY ARE FOR VIDEO

  • TRANSFER. WE

  • WILL USE THE?--APT AND?--PIP TO RUN THE PACKAGES.

  • WE'RE GOING TO RUN THE STYLE PYTHON SCRIPT, AND WE'RE

  • GOING TO TELL THE SCRIPTS WE WANT THE OUTPUT TO BE AT A

  • FOLDER CALLED CKKP CHECK POINT, AND WE'RE GOING TO TELL THE

  • SCRIPT THAT THIS IS THE PATH TO OUR STYLE IMAGE.

  • AND THIS IS THE STYLE WEIGHT, THIS IS THE STYLE LOSS OF THAT

  • MODEL, WHICH IS 150, AND YOU CAN READ MORE ABOUT IT AT LOGAN'S

  • GITHUB REPO ABOUT THE DEFAULT STYLE WEIGHT AND OTHER

  • INFORMATION. IS

  • -- WE WILL SPECIFY THE TRAIN PATH. THIS IS THE PATH TO THE

  • COCO DATASET, AND THE PATH TO OUR VGG MODEL. WE DON'T NEED TO

  • CHANGE ANY OF THIS. THE ONLY THING WE NEED TO CHANGE IS OUR

  • RUN NUMBER, WHICH WOULD BE 13, BECAUSE 13 RUN WILL DOWNLOAD TO

  • ALL OF THOSE DATASETS. AND WE'RE ALSO GOING TO CHANGE THE

  • STYLE IMAGE NAME TO OUR OWN IMAGE NAME, WHICH IS

  • FUTRAN.JPG. OKAY, LET'S DO THIS.

  • SO I COPY AND PASTED THIS

  • COMMAND.

  • I'M JUST GOING TO REPLACE -- I WILL GO TO A CODE EDITOR FIRST.

  • I'M GOING TO REPLACE MY -- I WILL REPLACE THIS WITH MY REAL

  • STYLE TRANSFER, STYLE IMAGE, WHICH IS FUTRAN.JPG. AND ALSO

  • I'M GOING TO REPLACE THIS, THE RUN NUMBER OF THE SETUP RUN, TO

  • 13. THAT'S THE RUN THAT WE USED. AND THAT'S IT.

  • SO NOW WE SHOULD BE ABLE TO COPY AND PASTE THIS COMMAND AND RUN

  • IT IN OUR SPELL. AND, BY RUNNING THIS, WE ARE

  • GOING TO START A NEW RUN TO TRAIN THE

  • MODEL. LET'S JUST DO

  • IT. IT SAYS CUSTOM SPELL, MACHINE

  • REQUESTED, RUN IS RUNNING, MOUNTING IS WHERE WE MOUNT THE

  • DATAFOLDER TO

  • THIS RUN. IT SAYS TESLA.100, THE MACHINE

  • TYPE, I THINK IT WILL GIVE MORE INFORMATION. BUT I'M GOING TO

  • DO CONTROL C TO LET IT STOP LOGGING ALL OF THOSE LOGS.

  • AND WE CAN ALSO DO SPELL.PS TO SEE OUR RUN.

  • SO NOW I ACTUALLY HAVE TWO RUNS RUNNING, TWO RUNS RUNNING. THE

  • FIRST ONE IS THE SET-UP, AND WE'RE STILL WAITING FOR THAT TO

  • FINISH, AND THIS IS THE TRAINING SCRIPT.

  • THIS IS THE V100

  • MACHINE. THE ONE THING I FORGOT TO

  • MENTION, BECAUSE IT TAKES A WHILE TO FINISH THIS RUN, IN

  • SPELL, THERE'S A PLACE WE CAN SET NOTIFICATIONS SO IT WILL

  • SEND EMAILS WHEN THIS RUN TAKES TOO LONG OR IT COSTS TOO MUCH

  • MONEY. SO ON MY SPELL ACCOUNT, IF I GO

  • TO SETTING, AND THE NOTIFICATIONS HERE, I CAN SET

  • SOME, LIKE, EMAIL NOTIFICATIONS SAYING, EMAIL ME IF THE RUN

  • EXCEEDS $20, THINGS LIKE THIS, IN CASE THE RUN TAKES TOO LONG.

  • SO WE CAN DO THIS. AND ALSO, IF YOU ARE CURIOUS

  • ABOUT THE VERSIONS OF PACKAGES AND FRAMEWORKS THAT WE HAVE IN

  • THE SPELL ENVIRONMENT, ONE THING THAT WE CAN DO IS

  • TO DO SPELL, RUN, PIP, PHRASE. IT WILL LOG OUT ALL OF THOSE

  • INSTALL PACKAGES

  • FOR US. SO THIS IS A NEW RUN, TOO.

  • SO WE WILL CAST THE SPELL

  • 17.

  • THIS IS FINISHED, THE RUN TIME IS 10 SECONDS AND WE CAN SEE THE

  • PACKAGES, TENSORFLOW 1.10.1, THINGS LIKE THIS IF YOU ARE

  • CURIOUS ABOUT THE VERSIONS OF THE

  • FRAMEWORKS. YEAH, SO LET'S GO BACK TO SEE

  • HOW DID OUR RUN IS DOING. SO THIS IS THE RUN THAT I JUST

  • STARTED FOR TRAINING. IT HAS BEEN RUNNING FOR THREE

  • MINUTES, AND IT IS STILL

  • RUNNING.

  • IT WILL TAKE ABOUT TWO HOURS TO FINISH, BUT I HAVE A COMPLETE

  • ONE, WHICH IS RUN 14. AND RUN 14 TAKES TWO HOURS AND 6 MINUTES

  • TO FINISH, BUT HERE I TRAINED THE -- ANOTHER SPELL IMAGE, SEE

  • I HAD THIS EXACTLY THE SAME RUN. I TRAINED THIS MODEL ON THIS

  • LOTUS IMAGE. AND THIS IS THE OUTPUT OF THIS

  • RUN. SO WHEN WE'RE WAITING FOR OUR

  • RUN 16 TO FINISH, WE CAN USE THIS RUN 14. THIS RUN 14

  • OUTPUTS A NEW FOLDER CALLED CKPT CHECKPOINT. IF WE OPEN THIS

  • FOLDER, WE CAN SEE THERE ARE, LET ME MAKE THIS BIGGER.

  • IF WE OPEN THIS CKPT FOLDER, IF EVERYTHING GOES WELL, WE SHOULD

  • BE ABLE TO SEE FOUR FILES IN THIS FOLDER.

  • THEY ARE

  • CHECKPOINTS.DATA.INDEX.META. THIS IS A FORMAT OF TENSORFLOW'S

  • SAVED MODEL. THIS .META STORES THE GRAPH

  • INFORMATION AND THIS .DATA FILE HERE STORES THE VARIABLE OF THE

  • INFORMATION INSIDE OF THE GRAPH, AND THIS .INDEX IDENTIFIES THE

  • CHECKPOINT, AND THIS CHECKPOINT FILE ONLY TELLS US THE MODEL

  • PATH. BUT FOR THE NEXT STEP, WE ARE GOING TO COPY THOSE FOLDERS

  • BACK TO OUR

  • LOCAL COMPUTER. SO WE CAN USE SPELL.LS TO LIST

  • ALL OF THE OUTPUTS FOR US. SO I'M GOING TO DO THIS SPELL.LS

  • RUNS. AND THE RUN NUMBER IS

  • 114, THE COMPLETED TRAINING RUN. SO IF WE DO THIS, SPELL WOULD

  • TELL US, OH, THE OUTPUT IS A FOLDER CALLED CKPT.

  • SO I ALSO WANTED TO SEE WHAT IS INSIDE OF CKPT SO I CAN DO SPELL

  • LS

  • RUNS/14CKPT. AND THEN IT LISTS ALL OF THE

  • FOUR FILES THAT WE SAW ON THE SPELL WEBSITE, AND WHAT WE'RE

  • GOING TO DO IS WE WANT TO COPY AND PASTE ALL OF THOSE -- TO

  • COPY ALL OF THE FILES BACK. SO I AM GOING TO CREATE A

  • NEW

  • FOLDER CALLED SPELL MODEL. AND THEN I'M GOING TO GO INSIDE

  • TO THE MODEL AND THEN HERE, I'M GOING TO COPY ALL OF THOSE FOUR

  • FILES. AND THE RUN NUMBER, AGAIN, IS

  • 14.

  • SO WE HIT ENTER, AND WE WERE COOPYING -- COPYING THIS

  • FILE. >> SHORT INTERMISSION,

  • EVERYBODY. WE KNOW THAT TWO HALF HOURS HAVE PASSED.

  • WE'RE

  • GOOD,

  • WE'RE GOOD. IT IS A LITTLE BIT LESS THAN

  • AN HOUR, BECAUSE THE CAMERA STARTED BEFORE WE STARTED. AND

  • IF YOU ARE WONDERING IF THIS IS LIVE -- PEOPLE ARE LIKE, IS THIS

  • LIVE? SO THIS IS FINISHED. WE HAVE

  • SUCCESSFULLY COPIED ALL OF THE FOUR FILES, WHICH IS THE MODEL,

  • WHICH IS A TENSORFLOW SAVED MODEL BACK TO OUR LOCAL

  • COMPUTER. SO WE CREATED A RUN FOLDER

  • INSIDE OF THE GITHUB REPO

  • IS FINE. IF WE LIST THE FILES, WE CAN SEE

  • THE FILES ARE ON OUR LOCAL MACHINE. SO THIS IS HOW WE CAN

  • GET THE TRAINED MODEL BACK FROM SPELL'S REMOTE MACHINE.

  • AND ACTUALLY, WE CAN OPEN THAT TO SEE WHAT DO

  • THEY LOOK LIKE. I'M GOING

  • TO THAT DIRECTORY. I JUST CREATED THIS NEW FOLDER CALLED

  • SPELL MODEL. I'M GOING TO DRAG THIS MODEL OUT TO THE

  • DESKTOP. AND, AS WE CAN SEE, WE HAVE FOUR

  • FILES. THIS IS THE FORMAT OF THE TENSORFLOW SAVED MODEL. IF

  • WE OPEN THIS

  • CHECKPOINT FILE, FOR THERE ARE ONLY TWO LINES IN THIS FILE. IT

  • TELLS USH US THE MODEL CHECKPOINT PATH IS .CKPT.

  • THIS IS IMPORTANT INFORMATION, BECAUSE WE ARE GOING TO USE THIS

  • PATH FOR OUR NEXT STEP. SO JUST REMEMBER THE MODEL

  • CHECKPOINT PATH IS THIS.

  • OKAY. SO FAR, WE SET UP THE

  • ENVIRONMENT, WE DOWNLOADED THE DATASET, WE TRAINED THE MODEL

  • WITH THE STYLE PYTHON SCRIPT, WE COPIED OUR TRAINED MODEL BACK TO

  • OUR LOCAL COMPUTER, AND THEN THE LAST STEP IS TO CONVERT THE

  • MODEL TO A FORMAT THAT WE CAN USE IN TENSORFLOW.JS AND ML5.JS.

  • OKAY, LET'S DO THIS. AND BY THE WAY, THIS IS THE FOLDER -- THIS

  • IS THE IS THE TRAINED MODEL THAT WE GOT ON THE

  • DESKTOP.

  • OKAY, SO IF I GO BACK TO MY OLD

  • DIRECTORY, WHICH IS

  • LIVESTREAM HERE,

  • WE'RE GOING TO USE THE SCRIPTS THAT IS FROM FAST STYLE

  • TRANSFER DEEP LEARN.JS. THIS IS THE FORMAL NAME FOR TENSORFLOW

  • JS. THIS REPO

  • IS BUILT BY GIRO NAKANO, HIS WORK IS AMAZING. HE RECENTLY

  • CONTRIBUTED A NEW MODEL, SKETCH

  • RN, AS WELL. YOU SHOULD CHECK OUT HIS WORK. WE'RE GOING TO

  • USE HIS SCRIPTS TO CONVERT THE TENSORFLOW MODEL INTO A MODEL WE

  • CAN USE IN

  • ML5.JS. THE WAY WE ARE GOING TO DO IT IS

  • TO CLONE HIS GITHUB

  • REPO.

  • AND THEN WE WILL GO INSIDE THE GITHUB REPO. AND WE'RE GOING TO

  • PUT ALL OF THE CHECK POINT FILES THAT WE GOT INTO ONE OF THE FOLD

  • OF THE FOLDERS INSIDE OF THIS

  • GITHUB REPO. I HAVE TO GO TO FAST STYLE

  • TRANSFER.DEEPLEARN.JS AND GO TO

  • SOURCE. THIS IS NOT THE SOURCE, JUST THE

  • ROOT DIRECTORY. SO I'M GOING TO DRAG, I WILL COPY THIS FOLDER TO

  • THE ROOT DIRECTORY OF THIS GITHUB REPO.

  • AND I JUST DID, IT IS HERE. AND THEN WE CAN RUN -- WE'RE

  • GOING TO RUN TWO PYTHON IT SCRIPTS. WE WILL DUMP THE EXEC

  • CHECK POINTS TO CON RURAL -- CONVERT THE FORMATS. SO WE WILL

  • COPY AND PASTE

  • THIS COMMAND. SO I WILL ADD THIS IN THE CODE

  • EDITOR FIRST. SO THIS IS IN THE PYTHON SCRIPT, I WILL RUN THIS

  • SCRIPT, AND THE OUTPUT DIRECTORY IS SOURCE/CHECKPOINTS/OUR FOLDER

  • NAME, WHICH IS SPELL MODEL. AND THEN THE CHECKPOINT FILE IS

  • IN THE ROOT DIRECTORY OF THE

  • GITHUB REPO. SO IT IS THE SLASH SPELL

  • MODEL, SLASH CKPT. THIS IS THE PATH TO OUR MODEL WHICH WE SAW

  • BEFORE IN THIS CHECKPOINT FILE. THIS IS THE PATH TO OUR

  • CHECKPOINT. THAT'S WHY WE HAVE THIS NAME

  • HERE. OKAY. SO NOW I'M JUST GOING TO

  • RUN

  • THIS SCRIPT. AND THEN YOU CAN SEE IT IS DONE.

  • SO IT ACTUALLY CREATED ONE CHECKPOINT FILE, AND 49 OTHER

  • FILES. AND WE CAN GO TO -- WE CAN GO

  • THERE TO SEE WHAT IS THE OUTPUT. THE OUTPUT

  • LIVES IN SOURCE CHECK POINTS, AND THIS IS OUR MODEL.

  • AND YOU CAN SEE THAT WE GOT THE MANIFEST JSON. THIS TELLS US

  • THE STRUCTURE OF

  • THE GRAPH. AND ALSO 49 FILES THAT TELLS US ALL THE VALUES --

  • ALL THE VARIABLES IN EACH LAYER. AND THIS IS THE FORMAT THAT WE

  • CAN USE IN ML5.JS AND TENSORFLOW.JS.

  • OKAY. SO NOW I'M JUST GOING TO COPY

  • THIS MODEL BACK TO MY

  • DESKTOP. I WILL RENAME IT AND DRAG IT TO

  • MY

  • DESKTOP.

  • SO FAR, WE GOT TWO MODELS. WE HAVE A TENSORFLOW SAVED MODEL

  • THAT CAN WORK IN TENSORFLOW, OF COURSE.

  • AND THEN WE ALSO GOT ANOTHER MODEL THAT CAN WORK IN ML5.JS

  • AND TENSORFLOW.JS. SO THIS IS WHAT WE

  • GOT TODAY. AND THE NEXT STEP IS TO RUN THIS

  • MODEL IN ML5.JS. HERE ARE TWO

  • DEMOES, ON THE ML5 WEBSITE, AND WE ALSO HAVE THIS DEMO HERE THAT

  • YOU CAN SELECT A DIFFERENT STYLE, YOU CAN UPLOAD THE IMAGE,

  • YOU CAN CHANGE YOUR

  • STYLE HERE. AND YOU CAN UPLOAD THE IMAGE,

  • I'M GOING TO UPLOAD A

  • PHOTO.

  • THIS IS A PHOTO OF A CAT AND CLICK ON TRANSFER MY IMAGE, THIS

  • IS THE TRANSFERRED CAT. YOU CAN ALSO PLAY IT WITH DIFFERENT

  • STYLES, TOO. OH, I LIKE THIS

  • ONE. AND ALSO, YOU CAN USE WEBCAM.

  • ANDTHEN YOU -- AND THEN YOU CAN CLICK THIS BUTTON AND SEE THE

  • TRANSFERRED VERSION OF THE IMAGES FROM THE

  • WEB CAM. SO YOU CAN GO THERE AND CHECK

  • THIS DEMO OUT. BUT NEXT, WE'RE JUST GOING TO RUN THIS MODEL IN

  • OUR P5 -- IN OUR ML5

  • DEMO. SO WE CAN DO THIS

  • QUICKLY. HERE, WE ARE JUST GOING TO CLONE

  • THIS GITHUB

  • REPO.

  • AND THEN WE WILL GO INSIDE TO THAT FOLDER,

  • STYLETRANSFER_SPELL AND WE WILL PUT THIS INSIDE OF THE CODE

  • EDITOR. AND IN THIS, IN ITS MODELS

  • FOLDER, THERE IS ONE MODEL THERE. WE ARE GOING TO ADD OUR

  • NEW MODELS INSIDE OF THIS FOLDER.

  • SO WHAT WE'RE GOING TO DO IS TO FIND THAT GITHUB

  • REPO. AND INSIDE OF MODELS, I'M GOING

  • TO COPY AND PASTE THIS MODEL IN. I'M GOING TO RENAME IT TO

  • LOTUS, BECAUSE THE NAME OF THE ART IS CALLED

  • LOTUS. AND NOW WE GO BACK TO THE CODE

  • EDITOR, WE HAVE A NEW MODEL HERE, AND WE CAN TAKE A LOOK AT

  • WHAT IS INSIDE OF THE INDEX.HTML.

  • SO TO RUN THIS -- TO BUILD THIS DEMO, WE NEED P5 JS MAINLY TO

  • GET THE VADEIO FROM THE WEB CAM AND ALSO WE NEED A P5 LIBRARY TO

  • CREATE DOM ELEMENTS FOR US, AND THEN IN THE END WE WILL USE THE

  • ML5.JS LIBRARY. WE HAVE STYLES HERE, WE CAN IGNORE THEM FOR

  • NOW, AND WE ARE RUNNING THE SKETCH.JS SCRIPT HERE. AND IN

  • THE BODY, WE HAVE A HEADER TAG, WE HAVE A P TAG, AND WE ARE

  • LINKING THE SOURCE OF THE IMAGE, THE ART STYLE IMAGE, AND ALSO WE

  • ARE SHOWING THE ART IMAGE. BUT I'M GOING

  • TO CHANGE THIS

  • IMAGE TO THE LOTUS IMAGE. THIS IS A PRE-TRAINED MODEL.

  • I'M GOING TO ADD THIS IMAGE INTO THIS

  • IMAGE FOLDER. SO HERE, WE CAN SEE

  • IMAGES/LOTUS. SO WE'RE GOING TO SHOW THAT IMAGE, AND IN THE END,

  • WE HAVE A CONTAINER TO CONTAIN OUR CANVAS. AND NOW WE CAN GO

  • TO THE INDEX TERMINAL, AND THEN WE CAN GO TO SKETCH.JS. I'M

  • JUST GOING TO DELETE ALL THE CODE HERE. SO WE CAN DO IT

  • OURSELVES TOGETHER. SO TO BUILD THIS DEMO, WE NEED

  • THREE THINGS. SO WE NEED A VIDEO TO GET THE

  • IMAGES FROM OUR WEB CAM, SO WE HAVE VIDEO, AND WE ALSO NEED THE

  • STYLE TRANSFER FROM ML5 LIBRARY TO ALLOW US TO TRANSFER IMAGES.

  • SO I'M GOING TO HAVE ANOTHER VARIABLE CALLED STYLE.

  • AND

  • IN THE END WE WILL HOLD THE OUTPUT

  • IMAGE.

  • AND IN P5, THERE'S A SET-UP FUNCTION THAT IS CALLED ONCE IN

  • THE BEGINNING. IN THIS SET UP FUNCTION, WE ARE GOING TO USE

  • P5.JS TO CREATE

  • A CANVAS. THAT IS 320

  • WIDE AND 250 AS ITS

  • HEIGHT. AND WE'RE GOING TO USE THIS P5

  • DOWNLOAD LIBRARY TO PUT THE CANVAS ELEMENT INSIDE OF DIF

  • ELEMENT WHOSE I IT D

  • IS CANVAS CONTAINER. OKAY.

  • AND WE CREATE A CANVAS, THAT IS IT.

  • AND THEN WE'RE GOING TO CREATE THE VIDEO.

  • SO WE HAVE THIS FUNCTION CALLED CREATE CAPTURE. AND IF WE CAST

  • THE UPPER-CASE VIDEO, IT WILL TRY TO GUESS THE VIDEO FROM YOUR

  • WEB CAM. AND WE ARE ALSO GOING TO SAVE THE VIDEO HEIGHT,

  • BECAUSE WE DON'T NEED THE ORG VIDEO, BUT THE TRANSFERRED

  • VIDEO. SO WE'RE ALSO GOING TO

  • SAY VIDEO HEIGHT. WE ARE ALSO GOING TO CREATE THE RESULT

  • IMAGE, P5 DOWNLOAD LIBRARY HAS THIS -- I WANT TO MAKE IT A

  • LITTLE BIT BETTER. WE'RE GOING TO CREATE THIS

  • RESULT

  • IMAGE. TO CREATE IMG, PASS IT INTO THE

  • STRING THERE. AND WE'RE ALSO GOING TO HIDE THIS

  • IMAGE. WE'RE GOING TO DRAW THE IMAGE ON THE CANVAS, SO WE DON'T

  • REALLY NEED THIS IMAGE. IN THE END, WE'RE GOING TO USE ML5 TO

  • GET THE STYLE TRANSFER MODEL, RIGHT? SO STYLE EQUALS TRUE,

  • ML5.STYLE TRANSFER, AND WE GOING TO PASS IN THE PATH TO THE

  • MODEL. SO

  • ITS

  • MODELS/LOTUS. AND THEN WE CAN ALSO TELL THE

  • STYLE TRANSFER TO LOOK FOR INPUTS FROM OUR VIDEO. SO WE

  • ARE PASSING THE VIDEO, AND ALSO WE HAVE A CALLBACK

  • FUNCTION SAYING, OH, IF YOU FINISH THIS MODEL, LET ME KNOW.

  • THIS IS A CALLBACK FUNCTION CALLED MODEL LOTUS. WE ARE

  • GOING TO DEFINE THIS FUNCTIONAL. THIS IS A CALLBACK FUNCTION.

  • SO WE'RE GOING TO DO FUNCTION,

  • MODEL LOADED, AND ONCE THE MODEL IS LOADED, WE CAN JUST ASK THE

  • STYLE TRANSFER TO TRANSFER SOMETHING. BUT, AT FIRST, I

  • WANT TO CHANGE THE TEXT ON THIS P TAGGING TO MODEL LOADED JUST

  • TO LET PEOPLE KNOW THAT THE MODEL IS GOOD TO GO.

  • SO I'M GOING TO

  • SELECT AN ELEMENT. THIS IS A FUNCTION FROM P5 DOM

  • LIBRARY TO SELECT AN HTML ELEMENT FROM THE DOM.

  • THE ID STATUS, AND THEN I WANT TO CHANGE IT, THE HTML TO MODEL

  • LOADED. OKAY.

  • AND THEN ONCE THE MODEL IS LOADED, I'M GOING TO ASK THE

  • STYLE TO TRANSFER SOMETHING. SO I'M GOING TO SAY

  • STYLE.TRANSFER. AND I'M GOING TO PASS IN ANOTHER

  • FUNCTION

  • CALLED RESULT. THIS IS A CALLBACK FUNCTION, CONSTITUENCY

  • THE MODEL HAS ANYTHING BACK, THE FUNCTION IS CALLED. SO WE WILL

  • MAKE UP THIS FUNCTION. FUNCTION.RESULT, IT WILL GET TWO

  • THINGS. ONE IS IF THERE IS ANY ERROR DURING THIS PROCESS, IT

  • WILL PUT THE ERROR IN THIS ERROR VARIABLE. AND ANOTHER IS THE

  • OUTPUT, THE IMAGE. AND ONCE WE GOT THE RESULT,

  • WE ARE GOING TO GIVE

  • THE RESULT IMAGE AN ATTRIBUTE TO HOLD THIS IMAGE TO THE SOURCE.

  • SO WE'RE GOING TO SAVE THE RESULT

  • IMAGE.ATTRIBUTE. WE'RE GOING TO COPY THE SOURCE OF THIS

  • IMAGE.SOURCE TO OUR RESULT IMAGE. AND AFTER WE GOT THE

  • RESULT, WE WANT TO CALL THIS STYLE.TRANSFER AGAIN OVER AND

  • OVER TO SEE -- TO SEE MORE RESULTS.

  • SO WE'RE GOING TO DO STYLE.TRANSFER RESULT AGAIN.

  • AND ONE THING IS MISSING, BECAUSE WE DID UPDATE THE SOURCE

  • FOR RESULT IMAGE, BUT THIS RESULT IMAGE IS HIDDEN.

  • SO WE CANNOT SEE IT. AND P5 HAS A FUNCTION CALLED

  • DRAW. AND IT WILL RUN OVER AND OVER AGAIN IN THE DRAW FUNCTION,

  • WE'RE GOING TO DRAW THIS RESULT IMAGE.

  • SO I'M JUST GOING TO SAY IMAGE, LOWER CASE I.

  • IMAGE RESULT, ING, FROM ORIGIN 0-0, AND THE SIZE IS 320 TO 240.

  • THAT'S

  • IT.

  • WE NEED TO DO PYTHON

  • MINUS M .SERVER. AND IT STARTS THE SERVER AT LOCAL HOST 8000.

  • SO NOW IF I GO TO THE

  • LOCAL HOST,

  • WE SHOULD BE ABLE TO SEE SOMETHING.

  • SO THE MODEL IS LOADED, THIS IS

  • THE STYLE SOURCE. AND AS YOU CAN SEE, THIS STYLE

  • HAS MORE COLORS. SO THE RESULT IS A LITTLE BIT BETTER THAN THE

  • PREVIOUS MODEL. THIS IS THE DEMO THAT WE

  • BUILT TODAY. HE'S THESE ARE THE RESOURCES WE

  • USED, THIS IS GATIS'S PAPER FROM 2015, THIS IS THE PAPER, WHAT

  • NEURAL NETWORKS SEES, THIS STYLE TUTORIAL FROM SPELL, AND FROM

  • ML5.JS, IT HAS A STYLE TUTORIAL MADE BY CHRIS. AND I RECOMMEND

  • YOU TO CHECK THAT OUT, TOO. AND THIS IS THE LINK TO ML5.JS,

  • AND I ALSO WANT TO RECOMMEND THIS YOUTUBE CHANNEL BECAUSE I

  • LEARNED A LOT OF MACHINE LEARNING PAPERS FROM IT.

  • AND I WANT TO GIVE CREDIT TO THOSE TWO PROJECT CREATORS. WE

  • USED THE TENSORFLOW IMPLEMENTATION OF THE FAST STYLE

  • TRANSFER MADE BY LOGAN INGSTROM AND THE SCRIPT TO CONVERT THE

  • TENSORFLOW SAVED MODEL TO A FORMAT WE CAN USE IN

  • TENSORFLOW.JS AND ML5.JS. IT IS MADE BY NAKANO.

  • AND, TO WRAP UP TODAY, WE TRAINED A STYLE TRANSFER MODEL

  • WITH SPELL AND WE WILL RUN THIS

  • MODEL WITH ML5.JN THE BROWSER, YOU CAN CHECK OUT THE MODEL

  • HERE. AND THAT'S IT. I HOPE YOU LIKED THE VIDEO. AND IF YOU

  • RUN INTO ANY ISSU SHEN YOU ARE TRAINING OR RUNNING THE MODEL,

  • YOU CAN LEAVE COMMENTS ON THE GITHUB. YEP.

  • >> COME OVER HERE, SO PEOPLE ARE ASKING SOME INTERESTING

  • QUESTIONS. AND

  • I'M GOING

  • TO DO A SHORT Q&A SESSION AND WE WILL MONITOR AS WE ARE TALKING A

  • LITTLE BIT. SO ONE THING THAT SOMEBODY ASKED THAT IS

  • INTERESTING, WE ARE RUNNING SLOW IN THE BROWSER, IT IS AMAZING

  • THAT IT RUNSSS AT ALL. PEOPLE ASKED WHAT PERFORMANCE

  • CONSIDERATIONS ARE THERE, CAN THIS ACTUALLY RUN ON A MOBILE

  • PHONE? AND HOW FAR DID YOU PUSH THOSE

  • EXPERIMENTS? >> FOR NOW, IT WORKS WELL IN

  • CHROME. BUT I KNOW THAT TENSORFLOW.JS

  • SUPPORTS IOS AND OTHER OS. BUT IT HAS SLIGHTLY DIFFERENT

  • RESULTS A IN DIFFERENT OS. SO I'M NOT SURE.

  • >> RIGHT. >> BUT, YOU KNOW, MY EXPERIENCE

  • DOING THIS STUFF OVER THE LAST 10-PLUS YEARS, THE THING THAT

  • YOU ARE DOING NOW, YOU KNOW, IN A COUPLE YEARS THAT WILL WORK ON

  • THE SMALLER DEVICES. AND THEN THE NEWER THING WILL BE SUPER

  • FAST, AND THAT WILL WORK ON THE SMALLER DEVICES -- THIS STUFF IS

  • ALL VERY CYCLICAL AND, IN FACT, IF IT RUNS IN A BROWSER. AND

  • AGAIN, TO BE CLEAR, THE TRAINING PROCESS HERE IS A THING THAT YOU

  • CANNOT EASILY DO IN THE BROWSER. THAT IS A THING THAT TOOK A VERY

  • LONG TIME. YOU CAN DO IT ON YOUR OWN COMPUTER, YOU CAN BUY A

  • GPU, BUT USING A CLOUD COMPUTING SERVICE, WHICH SPELL IS ONE OF

  • MANY OPTIONS, IS AN -- AND SPELL MAKES IT SUPER EASY BECAUSE YOU

  • CAN JUST DO IT FOR THE COMMAND LINE INTERFACE RIGHT FROM YOUR

  • COMPUTER. THERE WAS ANOTHER QUESTION, I

  • DON'T KNOW IF YOU HAVE THE ANSWER TO THIS, BECAUSE I DON'T.

  • PEOPLE ARE CURIOUS, ONE THING I TALKED A LITTLE BIT ABOUT IN

  • MORE BEGINNING LEVEL MACHINE LEARNING TUTORIALS IS A LOSS

  • FUNCTION. WHAT IS THE -- DO YOU KNOW HOW

  • THE STYLE TRANSFER TRAINING PROCESS WORKS? LIKE HOW DOES IT

  • FIGURE OUT, LIKE, HOW WELL IT IS DOING?

  • >> IT DOES. SO, FOR FAST STYLE TRANSFER, IT HAS AN

  • IMAGEGE TRANSFORMATION NETWORK AND A LOSS CALCULATION NETWORK.

  • IT KIND OF -- I THINK I NEED TO CHECK THE PAPER IN

  • DETAIL, BUT IT CALCULATES THE LOSS AND THEN GOES BACK TO

  • MINIMIZE THE LOSS FUNCTION. >> I THINK WE WRAP

  • UP. THIS WAS AN HOUR AND 20

  • MINUTES, I'M EXCITED TO SEE HOW REPLICABLE THIS IS FOR YOU. CAN

  • YOU CLONE THIS PYTHON CODE, CAN YOU PICK YOUR OWN STYLE IMAGE,

  • AND CAN YOU THEN RUN IT WITH ML5 IN YOUR WEB CAM AND STYLE YOUR

  • OWN FACE FROM THE WEB CAM? IF YOU ARE ABLE TO FOLLOW THIS AND

  • DO THIS, THIS WAS SUGGESTED IN THE CODE TRAINING SLACK CHANNEL,

  • WHICH SLACK CHANNEL FOR PATRONS OR MEMBERS. USE THE HASHTAG

  • THIS.STYLE. AND PEOPLE ARE COMMENTING THAT YOU ARE FOR

  • GETTING THE SEMICOLONS, WHICH YOU DON'T NEED. BUT THAT IS

  • FUNNY, I WAS -- THIS IS THE THING I ALWAYS FORGET.

  • >> YEAH, I USED SEMICOLONS ALL THE TIME UNTIL A COLLEAGUE SAID

  • USUALLY USE THAT IF IT IS NOT CLEAR, AND THEN I SWITCHED TO

  • NOT. SO I'M GOOD WITH BOTH.

  • >> WE COULD BE HERE FOR THE NEXT THREE HOURS DISCUSSING IF YOU

  • SHOULD USE THEM OR NOT. SO THIS.STYLE, YOU CAN SHARE THINGS

  • YOU MAKE ON TWITTER WITH THAT HASHTAG, WHATEVER SOCIAL MEDIA

  • YOU USE, THERE'S A COMMENTS SECTION ONCE THE VIDEO IS

  • ARCHIVED. IN ADDITION, I WILL HOPEFULLY CREATE A PAGE ON THE

  • CODING TRAIN.COM WITH THE LINKS THAT YINING HAS SHOWN YOU HERE.

  • AND WE WILL HAVE ALL OF THE LINKS AND THE RESOURCES AND ALL

  • THE ARTISTS AND EVERYTHING, WE WILL UPDATE THE VIDEO

  • DESCRIPTION FOR THIS ARCHIVE FOR THE ARCHIVED VERSION OF THIS

  • LIVESTREAM AFTERWARDS AS WELL. THIS.STYLE -- I'M LOOKING TO SEE

  • IF THERE ARE ANY URGENT OR BURNING QUESTIONS.

  • WE CAN WAVE GOODBYE FROM

  • THIS.STYLE. OKAY, BUT AND THEN THE ONLY WAY

  • -- OH, GET THE SLIDESISM

  • WHATEVER MATERIALS WE CAN PUBLISH, WE WILL PUBLISH AND

  • SHARE THE SLIDES AS WELL. AND I WANT TO MENTION, CAN I GO TO

  • YOUR BROWSER HERE? IF I GO TO YOUTUBE/CODINGTRAIN,

  • AND HOPEFULLY THIS IS NOT GOING TO --

  • >> YOU CAN CLOSE THIS. >> I DON'T WANT TO CLOSE IT. IT

  • IS SO WONDERFUL. YEAH, I WILL CLOSE IT.

  • SO YOU CAN SEE THAT NEXT UP, SCHEDULED FOR, WHOOPS, SCHEDULED

  • FOR OCTOBER 5, I THINK WE ARE GOING TO DO IT EARLIER. IT SAYS

  • 8:00AM PACIFIC TIME, OR 11:00 EASTERN, WE WILL DO ANOTHER

  • TUTORIAL WITH ALL OF THE

  • SAME ELEMENTS. THIS IS WITH ALL THE SAME ELEMENTS, ML5, SPELL,

  • AND TENSORFLOW TO TRAIN SOMETHING CALLED AN LSTM, A LONG

  • SHORT TERM MEMORY NETWORK. THIS IS A KIND OF NEURAL NETWORK THAT

  • IS WELL-SUITED FOR SEQUENCES. SO IF YOU WANTED TO TRAIN A

  • MODEL TO KNOW ABOUT HOW CHARACTERS APPEAR NEXT TO EACH

  • OTHER IN TEXT OR MUSICAL NOTES APPEAR NEXT TO EACH OTHER IN A

  • SONG, OR HOW STROKES APPEAR IN SEQUENCE IN

  • A DRAWING, THERE ARE SO MANY POSSIBILITIES. WE WILL SHOW YOU

  • HOW TO TAKE A TEXT FROM YOUR FAVORITE AUTHOR AND TRAIN A

  • MACHINE LEARNING MODEL ON SPELL.RUNCLOUD COMPUTING SERVICE

  • TO DOWNLOAD THE MODEL AND THEN HAVE THE MODEL GENERATE NEW TEXT

  • IN THE STYLE OF THAT AUTHOR FROM THE BROWSER. THAT IS TWO WEEKS

  • FROM TODAY, AND NEXT FRIDAY I

  • WILL BE BACK. AND YEAH, SO STAY

  • TUNED. CERTAIN THINGS THAT YOU CANNOT

  • FOLLOW TODAY, I DID WORKFLOW VIDEOS. AND YOU NEED THE EXACT

  • SAME STUFF, SO IF YOU ARE RUNNING GET, USING VISUAL STUDIO

  • CODE, RUNNING STUFF FROM YOUR TERMINAL, AND I HAVE AN INTRO TO

  • SPELL VIDEO. SO A LOT OF YOU ARE LIKE, HOW DO I FIND SPELL

  • AGAIN? YOU CAN FIND THAT IN THE INTRO TO SPELL VIDEO. I WILL

  • LINK TO THAT. GREAT.

  • I'M GOING TO GO, THIS IS THE AWKWARD

  • PART, CJ WAS ANOTHER WONDERFUL YOUTUBE CHANNEL. ALL OF THESE

  • THINGS

  • THAT YOU CAN DO IN OPEN BROADCAST VIDEO, PRESS A BUTTON

  • AND AN OUTRO VIDEO. >> THANK YOU FOR WATCHING, BYE.

  • >> THANK YOU, EVERYONE. LOOK FORWARD TO HEARING FROM YOU IN

  • THE COMMENTS. >> THANK YOU TO SPELL, WHITE

  • COAT CAPTIONING, AND

BIOGRAPHY

字幕與單字

單字即點即查 點擊單字可以查詢單字解釋

A2 初級

咒語與伊寧石的風格轉換 (Style Transfer using Spell with Yining Shi)

  • 1 0
    林宜悉 發佈於 2021 年 01 月 14 日
影片單字