Slide 1

Slide 1 text

Χϝϥ͔Βͷը૾ΛϦΞϧλΠϜʹ͍͡ΔPlayPixels Tech. Yuichi Yoshida Senior researcher, DENSO IT Laboratory, Inc. #iOSDC2018 @sonson_twit © 2014 DENSO IT Laboratory, Inc., All rights reserved. Redistribution or public display not permitted without written permission from DENSO IT Laboratory, Inc. Swift Playgrounds Bookͷ࡞Γํͱ഑Γํ

Slide 2

Slide 2 text

ࣗݾ঺հ • sonson • twitter: sonson_twit • github: sonsongithub • portfolio • 2tchɾɾɾଟ෼ɼࣙΊΔ • numsw • iOS11 Programming Book(ൃചத) • ࢓ࣄ(computer vision, machine learning) • ը૾ೝࣝɾݕࡧٕज़ • ࠷ۙ͸σʔλαΠΤϯεతͳ͜ͱ΋

Slide 3

Slide 3 text

$PSF.-ͱ$SFBUF.-ʹ ͍ͭͯॻ͘Α

Slide 4

Slide 4 text

ࠓ೔ͷ໨త

Slide 5

Slide 5 text

Swift Playgrounds

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

σϞ • AppleͷσϞ

Slide 8

Slide 8 text

ࠓ೔ͷ͓࿩ • ໨త • iPadʹࣗ෼޷ΈͷSwift coding؀ڥΛ࡞Δ • ͦ͏͍͏؀ڥΛΈΜͳͰެ։͋ͬͯ͠ɼָ͠Ή • ࡞Γํͱެ։ํ๏ • Appleۘ੡ͷςϯϓϨʔτʹΑΔ࡞ΓํΛ঺հ • ެ։Ͱ͖ΔΜͰ͢Αɼ͜Ε͕ɽ • Χϝϥͷը૾ॲཧΛ͢Δαϯϓϧ • ը૾ॲཧͷࠜװΛ஌ͬͯ΋Β͏

Slide 9

Slide 9 text

͜͏͍͏ͷΛΈΜͳͰ • ର࿩ʢ͓͢͢Ίʣ • Binary searchͷσϞ • ֆจࣈॲཧͷσϞ • numsw - ઢܗ୅਺ • PlayPixelsʢࠓ೔ͷϝΠϯσΟογϡʣ

Slide 10

Slide 10 text

͍͍ͱ͜Ζ • ϝΠϯͷ໨త͸ڭҭΒ͍͠ • Ͱ΋Ͷ͐ɾɾίϯςϯπ࡞Δͷେม • iPadͰಈ͘ʂʂʂ • Ͳ͜Ͱ΋ίʔυ͕ॻ͚Δ • ͓खܰɼ͔ͬ͜Α͘σϞͰ͖Δ • ͲΜͲΜਐԽ͍ͯ͠Δ • Χϝϥ͕࢖͑ΔΑ͏ʹͳͬͨʂ • Bluetooth͕࢖͑ΔΑ͏ʹͳͬͨʂ

Slide 11

Slide 11 text

ͭΒ͍ͱ͜Ζ • ϑϨʔϜϫʔΫ΍ϥΠϒϥϦ͕࢖͑ͳ͍ • ͢΂ͯιʔείʔυ͸Φʔϓϯʹͳͬͯ͠·͏ • σόοά͕େม • Ϛγʹ͸ͳ͖ͬͯͨ • Apple΍LEGOͷίϯςϯπ͕͗͢͢͝Δ • ૉਓ͕࡞Δͱɼ൵͍͠ɾɾɾɾ

Slide 12

Slide 12 text

PlaygroundBookͷ࡞Γํ

Slide 13

Slide 13 text

PlaygroundBook

Slide 14

Slide 14 text

Playgroundbookͷߏ੒ ├── Chapters │ └── Chapter1.playgroundchapter │ ├── Manifest.plist │ └── Pages │ ├── Basic.playgroundpage │ │ ├── Contents.swift │ │ ├── LiveView.swift │ │ └── Manifest.plist │ ├── Binarize.playgroundpage │ │ ├── Contents.swift │ │ ├── LiveView.swift │ │ └── Manifest.plist │ └── Filter.playgroundpage │ ├── Contents.swift │ ├── LiveView.swift │ └── Manifest.plist ├── Manifest.plist ├── PrivateResources │ ├── Base.lproj │ │ └── LiveView.storyboard │ ├── en.lproj │ │ └── ManifestPlist.strings │ └── icon.png └── Sources ├── LiveViewController.swift └── LiveViewSupport.swift

Slide 15

Slide 15 text

֓ཁ -JWF7JFXTXJGU $POUFOUTTXJGU

Slide 16

Slide 16 text

࡞Γํ • AppleͷςϯϓϨʔτΛ࢖͏ʢమଇʣ • Swift Playgrounds Author Template for Xcode 9.3Λσ ϕϩούʔαΠτ͔Βμ΢ϯϩʔυ

Slide 17

Slide 17 text

·ͣ͸ઃఆ • README.mdͷ”First Step”ʹै͍ɼϓϩδΣΫτͷ໊લ ͱ͔Λมߋ͢Δ • ద౰ʹ΍Δͱ໘౗ष͍͜ͱʹͳΔͷͰ஫ҙ • AppleͷςϯϓϨ͸͔ͳΓνϡʔϯ͞ΕͯΔɾɾɾʁ

Slide 18

Slide 18 text

ϓϩδΣΫτͷ ໊લͳͲͷม਺ ·ͣಡΉ Ͱͳ͍ͱϋϚΔ γϛϡϨʔλ্Ͱ#MVFUPPUI ͳͲΛ࠶ݱ͢ΔͨΊͷπʔϧ΍-JC γϛϡϨʔλΞϓϦຊମ 1MBZHSPVOE#PPL ຊମ

Slide 19

Slide 19 text

Swift Playgrounds Author Template • ΞϓϦͱͯ͠BookΛಈ͔͠ɼσόοά͠΍͘͢ • Bluetooth౳ͷUIΛΤϛϡϨʔτ • ϏϧυεΫϦϓτ΋ࠐΈ • σόοά • iOS12ͰSwift PlaygroundsͰNSLogΛ࣮ߦͯ͠΋Կ ΋දࣔ͞Εͳ͍ɾɾɾɾ • ͜ͷςϯϓϨʔτ͕།Ұͷ։ൃ؀ڥɾɾɾɾ

Slide 20

Slide 20 text

λʔήοτ 4XJGU1MBZHSPVOE#PPL

Slide 21

Slide 21 text

λʔήοτ #PPLͷγϛϡϨʔλͱͯ͠ͷΞϓϦ

Slide 22

Slide 22 text

λʔήοτ ΞϓϦͷͨΊʹίʔυΛ-JCʹ

Slide 23

Slide 23 text

-JWF7JFX5FTUBQQͷͨΊͷ ϑϨʔϜϫʔΫ

Slide 24

Slide 24 text

ͷத਎

Slide 25

Slide 25 text

Playgroundbookͷߏ੒ ├── Chapters │ └── Chapter1.playgroundchapter │ ├── Manifest.plist │ └── Pages │ ├── Basic.playgroundpage │ │ ├── Contents.swift │ │ ├── LiveView.swift │ │ └── Manifest.plist │ ├── Binarize.playgroundpage │ │ ├── Contents.swift │ │ ├── LiveView.swift │ │ └── Manifest.plist │ └── Filter.playgroundpage │ ├── Contents.swift │ ├── LiveView.swift │ └── Manifest.plist ├── Manifest.plist ├── PrivateResources │ ├── Base.lproj │ │ └── LiveView.storyboard │ ├── en.lproj │ │ └── ManifestPlist.strings │ └── icon.png └── Sources ├── LiveViewController.swift └── LiveViewSupport.swift

Slide 26

Slide 26 text

Playgroundbookͷߏ੒ ├── Chapters │ └── Chapter1.playgroundchapter │ ├── Manifest.plist │ └── Pages │ ├── Basic.playgroundpage │ │ ├── Contents.swift │ │ ├── LiveView.swift │ │ └── Manifest.plist │ ├── Binarize.playgroundpage │ │ ├── Contents.swift │ │ ├── LiveView.swift │ │ └── Manifest.plist │ └── Filter.playgroundpage │ ├── Contents.swift │ ├── LiveView.swift │ └── Manifest.plist ├── Manifest.plist ├── PrivateResources │ ├── Base.lproj │ │ └── LiveView.storyboard │ ├── en.lproj │ │ └── ManifestPlist.strings │ └── icon.png └── Sources ├── LiveViewController.swift └── LiveViewSupport.swift ຊମ

Slide 27

Slide 27 text

Playgroundbookͷߏ੒ ├── Chapters │ └── Chapter1.playgroundchapter │ ├── Manifest.plist │ └── Pages │ ├── Basic.playgroundpage │ │ ├── Contents.swift │ │ ├── LiveView.swift │ │ └── Manifest.plist │ ├── Binarize.playgroundpage │ │ ├── Contents.swift │ │ ├── LiveView.swift │ │ └── Manifest.plist │ └── Filter.playgroundpage │ ├── Contents.swift │ ├── LiveView.swift │ └── Manifest.plist ├── Manifest.plist ├── PrivateResources │ ├── Base.lproj │ │ └── LiveView.storyboard │ ├── en.lproj │ │ └── ManifestPlist.strings │ └── icon.png └── Sources ├── LiveViewController.swift └── LiveViewSupport.swift ϖʔδ ࠷খ୯Ґ

Slide 28

Slide 28 text

Playgroundbookͷߏ੒ ├── Chapters │ └── Chapter1.playgroundchapter │ ├── Manifest.plist │ └── Pages │ ├── Basic.playgroundpage │ │ ├── Contents.swift │ │ ├── LiveView.swift │ │ └── Manifest.plist │ ├── Binarize.playgroundpage │ │ ├── Contents.swift │ │ ├── LiveView.swift │ │ └── Manifest.plist │ └── Filter.playgroundpage │ ├── Contents.swift │ ├── LiveView.swift │ └── Manifest.plist ├── Manifest.plist ├── PrivateResources │ ├── Base.lproj │ │ └── LiveView.storyboard │ ├── en.lproj │ │ └── ManifestPlist.strings │ └── icon.png └── Sources ├── LiveViewController.swift └── LiveViewSupport.swift ֤ϖʔδͷઃఆ

Slide 29

Slide 29 text

Playgroundbookͷߏ੒ ├── Chapters │ └── Chapter1.playgroundchapter │ ├── Manifest.plist │ └── Pages │ ├── Basic.playgroundpage │ │ ├── Contents.swift │ │ ├── LiveView.swift │ │ └── Manifest.plist │ ├── Binarize.playgroundpage │ │ ├── Contents.swift │ │ ├── LiveView.swift │ │ └── Manifest.plist │ └── Filter.playgroundpage │ ├── Contents.swift │ ├── LiveView.swift │ └── Manifest.plist ├── Manifest.plist ├── PrivateResources │ ├── Base.lproj │ │ └── LiveView.storyboard │ ├── en.lproj │ │ └── ManifestPlist.strings │ └── icon.png └── Sources ├── LiveViewController.swift └── LiveViewSupport.swift ຊͷߏ੒

Slide 30

Slide 30 text

Playgroundbookͷߏ੒ ├── Chapters │ └── Chapter1.playgroundchapter │ ├── Manifest.plist │ └── Pages │ ├── Basic.playgroundpage │ │ ├── Contents.swift │ │ ├── LiveView.swift │ │ └── Manifest.plist │ ├── Binarize.playgroundpage │ │ ├── Contents.swift │ │ ├── LiveView.swift │ │ └── Manifest.plist │ └── Filter.playgroundpage │ ├── Contents.swift │ ├── LiveView.swift │ └── Manifest.plist ├── Manifest.plist ├── PrivateResources │ ├── Base.lproj │ │ └── LiveView.storyboard │ ├── en.lproj │ │ └── ManifestPlist.strings │ └── icon.png └── Sources ├── LiveViewController.swift └── LiveViewSupport.swift Ϧιʔε

Slide 31

Slide 31 text

Playgroundbookͷߏ੒ ├── Chapters │ └── Chapter1.playgroundchapter │ ├── Manifest.plist │ └── Pages │ ├── Basic.playgroundpage │ │ ├── Contents.swift │ │ ├── LiveView.swift │ │ └── Manifest.plist │ ├── Binarize.playgroundpage │ │ ├── Contents.swift │ │ ├── LiveView.swift │ │ └── Manifest.plist │ └── Filter.playgroundpage │ ├── Contents.swift │ ├── LiveView.swift │ └── Manifest.plist ├── Manifest.plist ├── PrivateResources │ ├── Base.lproj │ │ └── LiveView.storyboard │ ├── en.lproj │ │ └── ManifestPlist.strings │ └── icon.png └── Sources ├── LiveViewController.swift └── LiveViewSupport.swift Ұ൪େ੾ ڞ௨ͷΫϥεͱ͔

Slide 32

Slide 32 text

playgroundpageͷߏ੒ཁૉ • LiveView.swift • Contents.swift • Manifest.plist

Slide 33

Slide 33 text

LiveView.swift • LiveView.swiftʹॻ͘͜ͱ͸͋Μ·Γͳ͍ • LiveViewControllerΛ͜͜Ͱੜ੒ • receiveͰίϯτϩʔϥ͔ΒσʔλΛ͏͚ͱΓඳը • ॏཁͳͷ͸ɼLiveViewControllerͷ࣮૷ import UIKit import PlaygroundSupport PlaygroundPage.current.liveView = sharedLiveViewController

Slide 34

Slide 34 text

Contents.swift • ίʔσΟϯάʹؔ͢Δίϝϯτ΍ώϯτɼεέϧτϯίʔυ • ษڧͱͯ͠ͷίϯςϯπ͸ͪ͜Β͕ओ //#-hidden-code import UIKit import PlaygroundSupport //#-end-hidden-code func process(input: UnsafePointer, output: inout [CUnsignedChar], width: Int, height: Int, bytesPerPixel: Int) { //#-editable-code // write your own code //#-end-editable-code } //#-hidden-code class Listener: PlaygroundRemoteLiveViewProxyDelegate { func remoteLiveViewProxy(_ remoteLiveViewProxy: PlaygroundRemoteLiveViewProxy, received message: PlaygroundValue) { // handle message from LiveViewController } } let listener = Listener() if let proxy = page.liveView as? PlaygroundRemoteLiveViewProxy { proxy.delegate = listener } //#-end-hidden-code

Slide 35

Slide 35 text

Manifest.plist - Page 1MBZHSPVOE-PHHJOH.PEF0⒎ -JWF7JFX&EHF5P&EHF:&4

Slide 36

Slide 36 text

Manifest.plist - Page 1MBZHSPVOE-PHHJOH.PEF/PSNBM -JWF7JFX&EHF5P&EHF:&4

Slide 37

Slide 37 text

Manifest.plist - Page 1MBZHSPVOE-PHHJOH.PEF0⒎ -JWF7JFX&EHF5P&EHF:&4

Slide 38

Slide 38 text

cutscenepageͷߏ੒ཁૉ • playgroundpageͱ͸ҟͳΓHTML΋දࣔՄೳ • ϑΥϧμ໊ɹ00.cutscenepage • Manifest.plistʹHTMLΛࢦఆ • PrivateResourcesʹݴޠ͝ͱʹHTMLΛ༻ҙ͢Δ • ίʔυෆཁͷϜʔϏʔͬΆ͍ͷʹ࢖͏Α͏ͩ

Slide 39

Slide 39 text

جຊίϯηϓτ -JWF7JFXͷϓϩηε $POUFOUͷϓϩηε

Slide 40

Slide 40 text

جຊίϯηϓτ -JWF7JFXͷϓϩηε $POUFOUͷϓϩηε

Slide 41

Slide 41 text

جຊίϯηϓτ -JWF7JFXͷϓϩηε $POUFOUͷϓϩηε 1SPYZ

Slide 42

Slide 42 text

ૹΔͱ͖͸྆ํͱ΋ಉ͡ -JWF7JFXͷϓϩηε $POUFOUͷϓϩηε 1SPYZ TFOE @NFTTBHF1MBZHSPVOE7BMVF

Slide 43

Slide 43 text

ૹड৴Ͱ͖Δܕ public enum PlaygroundValue { case array([PlaygroundSupport.PlaygroundValue]) case dictionary([String : PlaygroundSupport.PlaygroundValue]) case string(String) case data(Data) case date(Date) case integer(Int) case floatingPoint(Double) case boolean(Bool) }

Slide 44

Slide 44 text

ૹΔͱ͖͸྆ํͱ΋ಉ͡ -JWF7JFXͷϓϩηε $POUFOUͷϓϩηε 1SPYZ TFOE @NFTTBHF1MBZHSPVOE7BMVF

Slide 45

Slide 45 text

ड৴͚͕ͩҟͳΔ $POUFOUͷϓϩηε class Listener: PlaygroundRemoteLiveViewProxyDelegate { var pixelBuffer24bit: [CUnsignedChar]? func remoteLiveViewProxy(_ remoteLiveViewProxy: PlaygroundRemoteLiveViewProxy, received message: PlaygroundValue) { // handle a message } func remoteLiveViewProxyConnectionClosed(_ remoteLiveViewProxy: PlaygroundRemoteLiveViewProxy) { } } let listener = Listener() if let proxy = page.liveView as? PlaygroundRemoteLiveViewProxy { proxy.delegate = listener }

Slide 46

Slide 46 text

ૹΔͱ͖͸྆ํͱ΋ಉ͡ -JWF7JFXͷϓϩηε $POUFOUͷϓϩηε 1SPYZ TFOE @NFTTBHF1MBZHSPVOE7BMVF

Slide 47

Slide 47 text

ड৴͚͕ͩҟͳΔ -JWF7JFXͷϓϩηε @objc(Book_Sources_LiveViewController) public class LiveViewController: UIViewController, PlaygroundLiveViewMessageHandler, PlaygroundLiveViewSafeAreaContainer { public func receive(_ message: PlaygroundValue) { update(message) } }

Slide 48

Slide 48 text

جຊίϯηϓτ -JWF7JFXͷϓϩηε $POUFOUͷϓϩηε 1SPYZ

Slide 49

Slide 49 text

PlayPixelsͷ৔߹ -JWF7JFXͷϓϩηε $POUFOUͷϓϩηε 1SPYZ ը૾ॲཧ $BNFSB ͜ͷॲཧͷίʔυ $POUFOUTTXJGU Ωϟϓνϟͨ͠ ը૾Λ%BUBʹ

Slide 50

Slide 50 text

PlayPixelsͷ৔߹ -JWF7JFXͷϓϩηε $POUFOUͷϓϩηε 1SPYZ %BUBʹ ύοΩϯά 6**NBHFʹ 6**NBHF7JFXʹηοτ

Slide 51

Slide 51 text

LiveViewTest.app • UIApplication౳Λվ଄ʁ • LiveViewControllerͷಈ࡞֬ೝ༻ͷΞϓϦ • Swift Playgroundsઐ༻ͷUIͷςετ • ͦͷͨΊͷBluetoothͳͲͷϑϨʔϜϫʔΫ • Contents.swiftͷ୅ཧίʔυͷ࣮૷͕ඞཁ ࢖͏΂͖ɽσόοάͰࢮͶΔ #if LiveViewTestApp // γϛϡϨʔλͰಈ͔͢ͱ͖͸ɼϝιουΛ௚Ͱୟ͖ɼContents.swiftͷ୅ΘΓΛ࣮ߦ self.update(value) #else // PlaygroundͰಈ͔͢ͱ͖͸ɼproxyܦ༝ͰContents.swiftʹσʔλΛૹΔ self.send(value) #endif

Slide 52

Slide 52 text

Playground Book • PlaygroundSupportͱݺ͹ΕΔϞδϡʔϧ͕৭ʑػೳΛఏڙ • ςϯϓϨʔτͰγϛϡϨʔγϣϯՄೳ • PlaygroundValueܕͰ౉ͤΔσʔλͷܕͷόϦΤʔγϣϯ͕গͳ͍ • ؔ਺ͱ͔౉ͤͳ͍ • LiveViewTest.app͸ɼContents.swiftͱແؔ܎ • ίϯςϯπΛ͏·͘දࣔͤ͞ΔͨΊͷςετίʔυ͕ඞཁ

Slide 53

Slide 53 text

։ൃͷྲྀΕʁ • TemplateΛฤू • LiveViewControllerΛ࣮૷ • AppDelegate.swiftͰίϯςϯπΛදࣔ͢ΔίʔυΛ ॻ͘(Contents.swift) • iPad࣮ػͰɼLiveViewTest.appΛςετ • PlaygroundBookΛϏϧυ • AirDropͰiPad࣮ػʹPlaygroundBookΛૹΔ • Swift PlaygroundsͰ࣮ߦ͢Δ

Slide 54

Slide 54 text

υΩϡϝϯτ • Playground Book Format Reference • Swift PlaygroundsͷϓϩδΣΫτࣗମ͕ιʔεͷๅݿ

Slide 55

Slide 55 text

Furthermore, • Contents.swiftͷৄ͍͠ઃఆ • ίϯςϯπ࡞ΓͶ • ଟݴޠԽʢَ໳ʣ • Key-value store΋͋Δ • AssesmentStatus • ϢʔβͷਐḿධՁ༻ͷ࢓૊Έʁ

Slide 56

Slide 56 text

PlaygroundBookΛެ։͢Δ

Slide 57

Slide 57 text

ެ։ํ๏ • ࠷ۙ΍ͬͱެ։Ͱ͖ΔΑ͏ʹͳͬͨ • Ϣʔβ͕Swift Playgrounds͔ΒfeedΛొ࿥Մೳ • ϒϥ΢β͔Βొ࿥͢Δ͜ͱ΋Ͱ͖Δ

Slide 58

Slide 58 text

खॱ • ެ։ͷͨΊͷjsonϑΝΠϧ(feed)Λ࡞Δ • BookΛෳ਺ݸऩΊΒΕΔ • ϋϚΔϙΠϯτ • λΠτϧͱ໊લ͕Ұக • λΠτϧͱղౚޙͷ໊લ͕Ұக • identifier͕Ұக

Slide 59

Slide 59 text

feed { "title": "sonson", "publisherName": "Yuichi Yoshida", "feedIdentifier": "com.sonson.playground", "contactURL": "mailto:[email protected]", "formatVersion": "1.0", "documents": [ { "title": "PlayPixels", "overviewSubtitle": "To be written.", "detailSubtitle": "αϒλΠτϧৄࡉ", "description": "ৄ͍͠આ໌", "contentIdentifier": "com.sonson.playground.PlayPixels", "contentVersion": "1.0", "url": "https://sonson.jp/playgrounds/playpixels/PlayPixels.playgroundbook.zip", "publishedDate": "2018-05-18T12:00:00+00:00", "lastUpdatedDate": "2018-05-18T12:00:00+00:00", "thumbnailURL": "playpixels/thumbnail.png", "bannerImageURL": "playpixels/thumbnail.png", "additionalInformation": [ { "name": "Languages", "value": "English" } ], "previewImageURLs": [] } ] }

Slide 60

Slide 60 text

खॱ • ެ։ͷͨΊͷjsonϑΝΠϧ(feed)Λ࡞Δ • BookΛෳ਺ݸऩΊΒΕΔ • ϋϚΔϙΠϯτ • λΠτϧͱ໊લ͕Ұக • λΠτϧͱղౚޙͷ໊લ͕Ұக • identifier͕Ұக • feedʹࢦఆͨ͠ύεʹzipͰݻΊͨbookϑΝΠϧΛஔ͘ ├── feed.json ├── index.html └── playpixels ├── PlayPixels.playgroundbook.zip └── thumbnail.png

Slide 61

Slide 61 text

ϒϥ΢β͔ΒμΠϨΫτʹొ࿥ "https://developer.apple.com/ul/sp0?url=https://sonson.jp/playgrounds/feed.json"

Slide 62

Slide 62 text

https://sonson.jp/playgrounds/

Slide 63

Slide 63 text

Swift Playgrounds͕ىಈ

Slide 64

Slide 64 text

ొ࿥ɾɾɾɾײಈ

Slide 65

Slide 65 text

PlayPixelsͰֶͿը૾ॲཧͷجຊ

Slide 66

Slide 66 text

https://github.com/sonsongithub/PlayPixels

Slide 67

Slide 67 text

ը૾ॲཧͷجຊ

Slide 68

Slide 68 text

ը૾ॲཧͷجຊ

Slide 69

Slide 69 text

ը૾ॲཧͷجຊ

Slide 70

Slide 70 text

ը૾ॲཧͷجຊ

Slide 71

Slide 71 text

৞ΈࠐΈԋࢉʔϑΟϧλ ೖྗը૾ ग़ྗը૾

Slide 72

Slide 72 text

ϑΟϧλ

Slide 73

Slide 73 text

৞ΈࠐΈԋࢉʔϑΟϧλ ೖྗը૾ ग़ྗը૾

Slide 74

Slide 74 text

৞ΈࠐΈԋࢉʔϑΟϧλ ೖྗը૾ ग़ྗը૾ º

Slide 75

Slide 75 text

৞ΈࠐΈԋࢉʔϑΟϧλ ೖྗը૾ ग़ྗը૾

Slide 76

Slide 76 text

৞ΈࠐΈԋࢉʔϑΟϧλ ೖྗը૾ ग़ྗը૾

Slide 77

Slide 77 text

৞ΈࠐΈԋࢉʔϑΟϧλ ೖྗը૾ ग़ྗը૾

Slide 78

Slide 78 text

৞ΈࠐΈԋࢉʔϑΟϧλ ೖྗը૾ ग़ྗը૾ ϑΟϧλͷαΠζͰ ͪΐͬͱখ͘͞ͳΔ

Slide 79

Slide 79 text

͜Ε͸ɾɾɾͲΜͳϑΟϧλʁ

Slide 80

Slide 80 text

࣮͸ ܀ాଟت෉ɺ੺ึতଠ࿠, ύλʔϯೝࣝ ૣҴాେֶߨٛ – ฏ੒18೥౓

Slide 81

Slide 81 text

ྲྀߦΓͷCNN Y. Lecun, L. Bottou, Y. Bengio and P. Haffner, "Gradient-based learning applied to document recognition," in Proceedings of the IEEE, vol. 86, no. 11, pp. 2278-2324, Nov. 1998. ͜ͷॏΈΛػցֶशͰಘΔ

Slide 82

Slide 82 text

·ͱΊ • Swift playgroundsͷָ͠͞ • Swift Playgrounds Author TemplateΛ࢖͓͏ • Bookͷجຊ • Proxyϕʔεͷϓϩάϥϛϯά • Feedͷઃఆ • ެ։͸ɼPlayground.appͰͰ͖Δʂ • PlayPixelsͰֶͿɼը૾ॲཧͷجຊ