SlideShare a Scribd company logo
1
Antonie Lin
Image Segmentation with TensorFlow
Certified Instructor, NVIDIA Deep Learning Institute
NVIDIA Corporation
2
DEEP LEARNING INSTITUTE
DLI Mission
Helping people solve challenging
problems using AI and deep learning.
• Developers, data scientists and
engineers
• Self-driving cars, healthcare and
robotics
• Training, optimizing, and deploying
deep neural networks
33
TOPICS
• Lab Perspective
• Image Segmentation
• TensorFlow
• Lab
• Discussion / Overview
• Launching the Lab Environment
• Lab Review
4
LAB PERSPECTIVE
5
WHAT THIS LAB IS
• Discussion/Demonstration of image segmentation using Deep
Learning
• Hands-on exercises using TensorFlow for CNN training and
evaluation of image segmentation workflow
6
WHAT THIS LAB IS NOT
• Intro to machine learning from first principles
• Rigorous mathematical formalism of convolutional neural networks
• Survey of all the features and options of TensorFlow
7
BACKGROUND ASSUMPTIONS
• You are familiar with convolutional neural networks (CNN)
• Helpful to have:
• Image recognition experience
• TensorFlow experience
• Python experience
8
TAKE AWAYS
• You can setup your own image segmentation workflow in
TensorFlow and adapt it to your use case
• Know where to go for more info
• Familiarity with TensorFlow
9
IMAGE SEGMENTATION
10
COMPUTER VISION TASKS
Image
Segmentation
Object Detection
Image
Classification +
Localization
Image
Classification
(inspired by a slide used in cs231n lecture from Stanford University)
11
IMAGE SEGMENTATION
• “Segmentation” sometimes used to describe similar but slightly different tasks
• In this lab, semantic segmentation will be performed
• i.e., in an image, each pixel will be placed into one of multiple classes
• In a sense it’s a classification problem where each pixel has a class, vs image
recognition where each image (collection of pixels) has a class
• Specifically we’ll be looking at medical imaging data and attempting to determine
where the left ventricle (LV) is
• i.e., for each pixel is it part of LV or not?
12
TENSORFLOW
13
WHAT IS TENSORFLOW?
Created by Google, tensorflow.org
• “Open source software library for machine intelligence”
• Available on GitHub
• Flexibility—express your computation as a data flow graph
• If you can express it in TF syntax you can run it
• Portability—CPUs and GPUs, workstation, server, mobile
• Language options—Python and C++
• Performance—Tuned for performance on CPUs and GPUs
• Assign tasks to different hardware devices
• Uses CUDNN
TensorFlow, the TensorFlow logo and any related marks are trademarks of Google Inc.
14
RUNNING TENSORFLOW
• Construct a graph—this happens before any real computation happens
• Specify your neural network as a graph
• Variables--characteristics of the graph that can change over time
• i.e., learned weights
• Operations—computations that combine the variables and the data
• e.g., convolution, activation, matrix multiply, etc.
• Launch a session
• This is TF verbiage for executing a graph
• Taking data and running it through a previously-created graph
15
SAMPLE WORKFLOW
• Prepare input data
• Can use numpy arrays but for very large datasets TFRecords are recommended
• Build the computation graph
• Create inference, loss, training nodes
• Train the model
• Inject input data into graph in a TF session and loop over your input data.
• Specify things like batch size, number of epochs, learning rate, etc.
• Evaluate the model
• Run inference on graph and then evaluate accuracy based on suitable metric
16
TENSORBOARD
• TF tool to visualize training progress
• Plots of loss, learning rate, accuracy
• Visualize computation graph
• Will use TensorBoard during this lab
• Extremely useful to aggregate training and evaluation statistics for clear analysis of
the model behavior
17
TENSORBOARD GRAPH EXAMPLE
• Evaluation graph for NN with 1
hidden layer
• Each box clicks to expand
• Shows you the operations and the
variables in each user-defined
node
1818
INFERENCE GRAPH EXAMPLE
with tf.name_scope('Hidden1'):
W_fc = tf.Variable(tf.truncated_normal( [256*256, 512],
stddev=0.1, dtype=tf.float32), name='W_fc')
flatten1_op = tf.reshape( images_re, [-1, 256*256])
h_fc1 = tf.matmul( flatten1_op, W_fc )
with tf.name_scope('Final'):
W_fc2 = tf.Variable(tf.truncated_normal( [512, 256*256*2],
stddev=0.1, dtype=tf.float32), name='W_fc2' )
h_fc2 = tf.matmul( h_fc1, W_fc2 )
h_fc2_re = tf.reshape( h_fc2, [-1, 256, 256, 2] )
return h_fc2_re
19
LAB DISCUSSION / OVERVIEW
20
DATASET
• Cardiac MRI short-axis (SAX) scans
• Sunnybrook cardiac images from earlier competition
http://smial.sri.utoronto.ca/LV_Challenge/Data.html
• "Sunnybrook Cardiac MR Database" is made available under the CC0 1.0 Universal
license described above, and with more detail here:
http://creativecommons.org/publicdomain/zero/1.0/
• Attribution:
• Radau P, Lu Y, Connelly K, Paul G, Dick AJ, Wright GA. "Evaluation Framework for
Algorithms Segmenting Short Axis Cardiac MRI." The MIDAS Journal -Cardiac MR Left
Ventricle Segmentation Challenge, http://hdl.handle.net/10380/3070
21
IMAGE EXAMPLE
22
IMAGE EXAMPLES
Complete images and expertly labeled contours of LV
23
DATA DETAILS
• Original images are 256 x 256 grayscale DICOM format
• Output is a tensor of size 256 x 256 x 2
• Each pixel belongs to one of two classes
• Training set consist of 234 images
• Validation set consist of 26 images
24
BACKGROUND DATA SETUP
• Lots of guidance and code for how to setup/extract data taken from here:
• https://www.kaggle.com/c/second-annual-data-science-bowl/details/deep-learning-
tutorial
• Images and contours have been extracted from the raw data and packaged up for
ingest into TensorFlow
• Data extraction code is included but won’t be demo’d.
• TensorFlow data records provided but raw data is NOT provided for this lab
• If interested you can download yourself
25
TASK 1
Ensure things are working properly!
• Train and test a fully-connected neural network with one hidden layer
• Visual representation of this network appears on next slide
• For the loss computation we’ll use TF built-in
sparse_softmax_cross_entropy_with_logits
• Computes softmax of the inference output then cross entropy against the correct
labels
26
TASK 1 – NEURAL NETWORK
One hidden layer only
Input layer
65536 (256 x 256) pixels
hidden layer
512
output layer
256 x 256 x 2
27
TASK 1 - TENSORBOARD
• You can choose the
train or eval graph
• This is the training
graph
• You can click to
expand any node to
see more detail
• If you run more
training and/or eval
runs, and refresh
your browser, the
stats will update
28
TASK 2 - ADDITIONAL LAYERS
• Convolution layers
• Previous example focused on each input pixel
• What if features encompass multiple input pixels
• Can use convolutions to capture larger receptive fields
29
TASK 2 - ADDITIONAL LAYERS
• Pooling layers
• Essentially a down-sampling method retaining information while
eliminating some computational complexity
30
TASK 2 - ADDITIONAL LAYER
• Deconvolution (transpose convolution) layer
• Up-sampling method to bring a smaller image data set back up to it’s original size for
final pixel classification
• Long et al (CVPR2015) has nice paper re: FCN for segmentation
• Created FCNs from AlexNet and other canonical networks
• Zeiler et al (CVPR2010) describes deconvolution
• Network we will use is very similar to Vu Tran’s kaggle example here:
https://www.kaggle.com/c/second-annual-data-science-bowl/details/deep-
learning-tutorial
31
TASK 2 - FULLY CONVOLUTIONAL NETWORK
(FCN)
• RECALL: Image classification layers—Convolutions, pooling, activations, fully
connected
• Output is an N-dimensional vector where N == Number_of_classes
32
TASK 2 - FULLY CONVOLUTIONAL NETWORK
(FCN)
• Can we leverage this network to do segmentation? YES!
• Replace fully connected layer(s) with deconvolution (transpose convolution)
• Output is a 256 x 256 x N tensor where N == Number_of_classes
• In this lab N == 2
33
TASK 3 - DICE METRIC
• Metric to compare the similarity of two samples:
2 𝐴 𝑛𝑙________________________________
𝐴 𝑛 + 𝐴𝑙
• Where:
• An is the area of the contour predicted by the network
• Al is the area of the contour from the label
• Anl is the intersection of the two
• The area of the contour that is predicted correctly by the network
• 1.0 means perfect score.
• More accurately compute how well we’re predicting the contour against the label
• We can just count pixels to give us the respective areas
34
TASK 3 - TRAINING PARAMETERS
Important to search the space of parameters
• learning_rate: initial learning rate
• decay_rate: the rate that the initial learning rate decays
• e.g., 1.0 is no decay, 0.5 means cut the decay rate in half each number of (decay)
steps
• decay_steps: number of steps to execute before changing learning rate
• num_epochs: number of times to cycle through the input data
• batch_size: keep at 1 for now
• Experiment with learning_rate, decay_rate, decay_steps, num_epoch
• Record the parameters that give you the best Dice score
35
NAVIGATING TO QWIKLABS
1. Navigate to:
https://nvlabs.qwiklab.com
1. Login or create a new
account
36
ACCESSING LAB ENVIRONMENT
• Select the event
specific In-
Session Class in
the upper left
• Click the “Image
Segmentation
with TensorFlow”
Class from the
list
37
LAB REVIEW
38
LAB SUMMARY
• Intro to image segmentation
• Classifying pixels vs images
• Converted image recognition network into FCN for segmentation.
• Used TensorFlow as framework to explore various optimizations to FCN
• Explored new accuracy metric (Dice metric) to better capture true accuracy
39
TASK 1 - TRAINING OUTPUT
!python exercises/simple/runTraining.py –-data_dir /data
Output:
OUTPUT: Step 0: loss = 2.621 (0.169 sec)
OUTPUT: Step 100: loss = 4.958 (0.047 sec)
OUTPUT: Step 200: loss = 4.234 (0.047 sec)
OUTPUT: Done training for 1 epochs, 231 steps.
Lots of messages printed to the screen - look for “OUTPUT”
40
TASK 1 - EVALUATION
!python exercises/simple/runEval.py –-data_dir /data
Output:
OUTPUT: 2016-08-23 15:37:26.752794: accuracy = 0.504
OUTPUT: 26 images evaluated from file
/tmp/sunny_data/val_images.tfrecords
• Output shows the accuracy of the predictions and which data was utilized
• 1.0 means the NN classified all the data the same as the label, ie 100% correct
4141
TASK 1 SOLUTION
with tf.name_scope('Hidden1'):
W_fc = tf.Variable(tf.truncated_normal( [256*256, 512],
stddev=0.1, dtype=tf.float32), name='W_fc')
flatten1_op = tf.reshape( images_re, [-1, 256*256])
h_fc1 = tf.matmul( flatten1_op, W_fc )
with tf.name_scope('Final'):
W_fc2 = tf.Variable(tf.truncated_normal( [512, 256*256*2],
stddev=0.1, dtype=tf.float32), name='W_fc2' )
h_fc2 = tf.matmul( h_fc1, W_fc2 )
h_fc2_re = tf.reshape( h_fc2, [-1, 256, 256, 2] )
return h_fc2_re
42
TASK 2
exercises/tf/segmentation/cnn/neuralnetwork.py
• Finish the CNN, replace “FIXME”
• vi / vim the file and type /FIXME to identify where to make changes
• You need to figure out the dimensions
• Convolution1, 5x5 kernel, stride 2; Maxpooling1, 2x2 window, stride 2
• Convolution2, 5x5 kernel, stride 2; Maxpooling2, 2x2 window, stride 2
• Convolution3, 3x3 kernel, stride 1; Convolution4, 3x3 kernel, stride 1
• Score_classes, 1x1 kernel, stride 1; Upscore (DeConv), 31x31 kernel, stride 16
• Optional / Time Permitting: Experiment with num_epochs
4343
TASK 2 - PARTIAL SOLUTION
with tf.name_scope('Conv1'):
W_conv1 = tf.Variable(tf.truncated_normal([5,5,1,100],stddev=0.1,
dtype=tf.float32),name='W_conv1')
print_tensor_shape( W_conv1, 'W_conv1 shape')
conv1_op = tf.nn.conv2d( images_re, W_conv1, strides=[1,2,2,1],
padding="SAME", name='conv1_op' )
print_tensor_shape( conv1_op, 'conv1_op shape')
with tf.name_scope('Pool1'):
pool1_op = tf.nn.max_pool(relu1_op, ksize=[1,2,2,1],
strides=[1,2,2,1], padding='SAME')
print_tensor_shape( pool1_op, 'pool1_op shape')
44
TASK 2 - EVALUATION RESULTS
• 1 epoch of training
OUTPUT: 2016-08-26 20:44:55.012370: precision = 0.571
• 30 epochs of training
OUTPUT: 2016-08-26 20:48:16.593103: precision = 0.985
• 98.5% accurate!
• Very good accuracy, are we done?
45
TASK 2 - ACCURACY
• How are we determining accuracy
• We are comparing the pixel value in the label with the value computed by the CNN
• So 98.5% of the time we are predicting the pixel correctly
• However, the size of the contour is relatively small compared to the entire image
Class imbalance problem
• If we simply output the notLV class for every pixel we’d have over 95% accuracy
• Clearly this isn’t what we want
46
TASK 3 - EVALUTION RESULTS
• Recall result from prior example:
• 1 epoch: precision = 0.501
• 30 epochs: precision = 0.985
• Now with Dice metric (recall 1.0 is perfect accuracy)
• 1 epoch: Dice metric = 0.033
• 30 epochs: Dice metric = 0.579
• Not as good as we originally thought
47
TASK 3 - RESULT
One possible result
--learning_rate=0.03
--decay_rate=0.75
--num_epochs=100
--decay_steps=10000
OUTPUT: 2016-08-26 21:22:15.590642: Dice metric = 0.861
Accuracy now looking much better!
48
WHAT ELSE?
• Run training longer
• For demo purposes we ran really short training runs
• Need more epochs
• More training data
• We only had 236 images in our training set
• Gather more data
• Augment images that we have with rotations, inversions, etc.
• TF has functions to flip/rotate/transpose automatically
• Larger more complicated networks
49
WHAT’S NEXT
• Use / practice what you learned
• Discuss with peers practical applications of DNN
• Reach out to NVIDIA and the Deep Learning Institute
5050
WHAT’S NEXT
…for the chance to win an NVIDIA SHIELD
TV.
Check your email for a link.
TAKE SURVEY
Check your email for details to access more
DLI training online.
ACCESS ONLINE LABS
Visit www.nvidia.com/dli for workshops in
your area.
ATTEND WORKSHOP
Visit https://developer.nvidia.com/join for
more.
JOIN DEVELOPER PROGRAM
51
www.nvidia.com/dli
Instructor: Antonie Lin

More Related Content

What's hot

Caffe framework tutorial2
Caffe framework tutorial2Caffe framework tutorial2
Caffe framework tutorial2
Park Chunduck
 
"Semantic Segmentation for Scene Understanding: Algorithms and Implementation...
"Semantic Segmentation for Scene Understanding: Algorithms and Implementation..."Semantic Segmentation for Scene Understanding: Algorithms and Implementation...
"Semantic Segmentation for Scene Understanding: Algorithms and Implementation...
Edge AI and Vision Alliance
 
Massively Parallel K-Nearest Neighbor Computation on Distributed Architectures
Massively Parallel K-Nearest Neighbor Computation on Distributed Architectures Massively Parallel K-Nearest Neighbor Computation on Distributed Architectures
Massively Parallel K-Nearest Neighbor Computation on Distributed Architectures
Intel® Software
 
Urs Köster - Convolutional and Recurrent Neural Networks
Urs Köster - Convolutional and Recurrent Neural NetworksUrs Köster - Convolutional and Recurrent Neural Networks
Urs Köster - Convolutional and Recurrent Neural Networks
Intel Nervana
 
Startup.Ml: Using neon for NLP and Localization Applications
Startup.Ml: Using neon for NLP and Localization Applications Startup.Ml: Using neon for NLP and Localization Applications
Startup.Ml: Using neon for NLP and Localization Applications
Intel Nervana
 
Using neon for pattern recognition in audio data
Using neon for pattern recognition in audio dataUsing neon for pattern recognition in audio data
Using neon for pattern recognition in audio data
Intel Nervana
 
Nervana and the Future of Computing
Nervana and the Future of ComputingNervana and the Future of Computing
Nervana and the Future of Computing
Intel Nervana
 
Accelerate Machine Learning Software on Intel Architecture
Accelerate Machine Learning Software on Intel Architecture Accelerate Machine Learning Software on Intel Architecture
Accelerate Machine Learning Software on Intel Architecture
Intel® Software
 
Recent developments in Deep Learning
Recent developments in Deep LearningRecent developments in Deep Learning
Recent developments in Deep Learning
Brahim HAMADICHAREF
 
"Efficient Implementation of Convolutional Neural Networks using OpenCL on FP...
"Efficient Implementation of Convolutional Neural Networks using OpenCL on FP..."Efficient Implementation of Convolutional Neural Networks using OpenCL on FP...
"Efficient Implementation of Convolutional Neural Networks using OpenCL on FP...
Edge AI and Vision Alliance
 
Large Scale Deep Learning with TensorFlow
Large Scale Deep Learning with TensorFlow Large Scale Deep Learning with TensorFlow
Large Scale Deep Learning with TensorFlow
Jen Aman
 
“Introduction to the TVM Open Source Deep Learning Compiler Stack,” a Present...
“Introduction to the TVM Open Source Deep Learning Compiler Stack,” a Present...“Introduction to the TVM Open Source Deep Learning Compiler Stack,” a Present...
“Introduction to the TVM Open Source Deep Learning Compiler Stack,” a Present...
Edge AI and Vision Alliance
 
Squeezing Deep Learning Into Mobile Phones
Squeezing Deep Learning Into Mobile PhonesSqueezing Deep Learning Into Mobile Phones
Squeezing Deep Learning Into Mobile Phones
Anirudh Koul
 
Improving Hardware Efficiency for DNN Applications
Improving Hardware Efficiency for DNN ApplicationsImproving Hardware Efficiency for DNN Applications
Improving Hardware Efficiency for DNN Applications
Chester Chen
 
[unofficial] Pyramid Scene Parsing Network (CVPR 2017)
[unofficial] Pyramid Scene Parsing Network (CVPR 2017)[unofficial] Pyramid Scene Parsing Network (CVPR 2017)
[unofficial] Pyramid Scene Parsing Network (CVPR 2017)
Shunta Saito
 
IIBMP2019 講演資料「オープンソースで始める深層学習」
IIBMP2019 講演資料「オープンソースで始める深層学習」IIBMP2019 講演資料「オープンソースで始める深層学習」
IIBMP2019 講演資料「オープンソースで始める深層学習」
Preferred Networks
 
Scalable Deep Learning Using Apache MXNet
Scalable Deep Learning Using Apache MXNetScalable Deep Learning Using Apache MXNet
Scalable Deep Learning Using Apache MXNet
Amazon Web Services
 
Recent Object Detection Research & Person Detection
Recent Object Detection Research & Person DetectionRecent Object Detection Research & Person Detection
Recent Object Detection Research & Person Detection
Kai-Wen Zhao
 
"Using SGEMM and FFTs to Accelerate Deep Learning," a Presentation from ARM
"Using SGEMM and FFTs to Accelerate Deep Learning," a Presentation from ARM"Using SGEMM and FFTs to Accelerate Deep Learning," a Presentation from ARM
"Using SGEMM and FFTs to Accelerate Deep Learning," a Presentation from ARM
Edge AI and Vision Alliance
 
CUDA and Caffe for deep learning
CUDA and Caffe for deep learningCUDA and Caffe for deep learning
CUDA and Caffe for deep learning
Amgad Muhammad
 

What's hot (20)

Caffe framework tutorial2
Caffe framework tutorial2Caffe framework tutorial2
Caffe framework tutorial2
 
"Semantic Segmentation for Scene Understanding: Algorithms and Implementation...
"Semantic Segmentation for Scene Understanding: Algorithms and Implementation..."Semantic Segmentation for Scene Understanding: Algorithms and Implementation...
"Semantic Segmentation for Scene Understanding: Algorithms and Implementation...
 
Massively Parallel K-Nearest Neighbor Computation on Distributed Architectures
Massively Parallel K-Nearest Neighbor Computation on Distributed Architectures Massively Parallel K-Nearest Neighbor Computation on Distributed Architectures
Massively Parallel K-Nearest Neighbor Computation on Distributed Architectures
 
Urs Köster - Convolutional and Recurrent Neural Networks
Urs Köster - Convolutional and Recurrent Neural NetworksUrs Köster - Convolutional and Recurrent Neural Networks
Urs Köster - Convolutional and Recurrent Neural Networks
 
Startup.Ml: Using neon for NLP and Localization Applications
Startup.Ml: Using neon for NLP and Localization Applications Startup.Ml: Using neon for NLP and Localization Applications
Startup.Ml: Using neon for NLP and Localization Applications
 
Using neon for pattern recognition in audio data
Using neon for pattern recognition in audio dataUsing neon for pattern recognition in audio data
Using neon for pattern recognition in audio data
 
Nervana and the Future of Computing
Nervana and the Future of ComputingNervana and the Future of Computing
Nervana and the Future of Computing
 
Accelerate Machine Learning Software on Intel Architecture
Accelerate Machine Learning Software on Intel Architecture Accelerate Machine Learning Software on Intel Architecture
Accelerate Machine Learning Software on Intel Architecture
 
Recent developments in Deep Learning
Recent developments in Deep LearningRecent developments in Deep Learning
Recent developments in Deep Learning
 
"Efficient Implementation of Convolutional Neural Networks using OpenCL on FP...
"Efficient Implementation of Convolutional Neural Networks using OpenCL on FP..."Efficient Implementation of Convolutional Neural Networks using OpenCL on FP...
"Efficient Implementation of Convolutional Neural Networks using OpenCL on FP...
 
Large Scale Deep Learning with TensorFlow
Large Scale Deep Learning with TensorFlow Large Scale Deep Learning with TensorFlow
Large Scale Deep Learning with TensorFlow
 
“Introduction to the TVM Open Source Deep Learning Compiler Stack,” a Present...
“Introduction to the TVM Open Source Deep Learning Compiler Stack,” a Present...“Introduction to the TVM Open Source Deep Learning Compiler Stack,” a Present...
“Introduction to the TVM Open Source Deep Learning Compiler Stack,” a Present...
 
Squeezing Deep Learning Into Mobile Phones
Squeezing Deep Learning Into Mobile PhonesSqueezing Deep Learning Into Mobile Phones
Squeezing Deep Learning Into Mobile Phones
 
Improving Hardware Efficiency for DNN Applications
Improving Hardware Efficiency for DNN ApplicationsImproving Hardware Efficiency for DNN Applications
Improving Hardware Efficiency for DNN Applications
 
[unofficial] Pyramid Scene Parsing Network (CVPR 2017)
[unofficial] Pyramid Scene Parsing Network (CVPR 2017)[unofficial] Pyramid Scene Parsing Network (CVPR 2017)
[unofficial] Pyramid Scene Parsing Network (CVPR 2017)
 
IIBMP2019 講演資料「オープンソースで始める深層学習」
IIBMP2019 講演資料「オープンソースで始める深層学習」IIBMP2019 講演資料「オープンソースで始める深層学習」
IIBMP2019 講演資料「オープンソースで始める深層学習」
 
Scalable Deep Learning Using Apache MXNet
Scalable Deep Learning Using Apache MXNetScalable Deep Learning Using Apache MXNet
Scalable Deep Learning Using Apache MXNet
 
Recent Object Detection Research & Person Detection
Recent Object Detection Research & Person DetectionRecent Object Detection Research & Person Detection
Recent Object Detection Research & Person Detection
 
"Using SGEMM and FFTs to Accelerate Deep Learning," a Presentation from ARM
"Using SGEMM and FFTs to Accelerate Deep Learning," a Presentation from ARM"Using SGEMM and FFTs to Accelerate Deep Learning," a Presentation from ARM
"Using SGEMM and FFTs to Accelerate Deep Learning," a Presentation from ARM
 
CUDA and Caffe for deep learning
CUDA and Caffe for deep learningCUDA and Caffe for deep learning
CUDA and Caffe for deep learning
 

Similar to NVIDIA 深度學習教育機構 (DLI): Image segmentation with tensorflow

Neural Networks with Google TensorFlow
Neural Networks with Google TensorFlowNeural Networks with Google TensorFlow
Neural Networks with Google TensorFlow
Darshan Patel
 
Neural Networks from Scratch - TensorFlow 101
Neural Networks from Scratch - TensorFlow 101Neural Networks from Scratch - TensorFlow 101
Neural Networks from Scratch - TensorFlow 101
Gerold Bausch
 
Introduction to Neural Networks in Tensorflow
Introduction to Neural Networks in TensorflowIntroduction to Neural Networks in Tensorflow
Introduction to Neural Networks in Tensorflow
Nicholas McClure
 
Blazing Performance with Flame Graphs
Blazing Performance with Flame GraphsBlazing Performance with Flame Graphs
Blazing Performance with Flame Graphs
Brendan Gregg
 
Machine Learning, Deep Learning and Data Analysis Introduction
Machine Learning, Deep Learning and Data Analysis IntroductionMachine Learning, Deep Learning and Data Analysis Introduction
Machine Learning, Deep Learning and Data Analysis Introduction
Te-Yen Liu
 
Deep Learning Made Easy with Deep Features
Deep Learning Made Easy with Deep FeaturesDeep Learning Made Easy with Deep Features
Deep Learning Made Easy with Deep FeaturesTuri, Inc.
 
TensorFlow and Keras: An Overview
TensorFlow and Keras: An OverviewTensorFlow and Keras: An Overview
TensorFlow and Keras: An Overview
Poo Kuan Hoong
 
Machine Learning Essentials Demystified part2 | Big Data Demystified
Machine Learning Essentials Demystified part2 | Big Data DemystifiedMachine Learning Essentials Demystified part2 | Big Data Demystified
Machine Learning Essentials Demystified part2 | Big Data Demystified
Omid Vahdaty
 
OpenPOWER Workshop in Silicon Valley
OpenPOWER Workshop in Silicon ValleyOpenPOWER Workshop in Silicon Valley
OpenPOWER Workshop in Silicon Valley
Ganesan Narayanasamy
 
Separating Hype from Reality in Deep Learning with Sameer Farooqui
 Separating Hype from Reality in Deep Learning with Sameer Farooqui Separating Hype from Reality in Deep Learning with Sameer Farooqui
Separating Hype from Reality in Deep Learning with Sameer Farooqui
Databricks
 
Getting Started with Keras and TensorFlow - StampedeCon AI Summit 2017
Getting Started with Keras and TensorFlow - StampedeCon AI Summit 2017Getting Started with Keras and TensorFlow - StampedeCon AI Summit 2017
Getting Started with Keras and TensorFlow - StampedeCon AI Summit 2017
StampedeCon
 
Mathemetics module
Mathemetics moduleMathemetics module
Mathemetics module
manikanta361
 
It's the memory, stupid! CodeJam 2014
It's the memory, stupid!  CodeJam 2014It's the memory, stupid!  CodeJam 2014
It's the memory, stupid! CodeJam 2014
Francesc Alted
 
(CMP305) Deep Learning on AWS Made EasyCmp305
(CMP305) Deep Learning on AWS Made EasyCmp305(CMP305) Deep Learning on AWS Made EasyCmp305
(CMP305) Deep Learning on AWS Made EasyCmp305
Amazon Web Services
 
Development of Deep Learning Architecture
Development of Deep Learning ArchitectureDevelopment of Deep Learning Architecture
Development of Deep Learning Architecture
Pantech ProLabs India Pvt Ltd
 
Introduction to computer vision
Introduction to computer visionIntroduction to computer vision
Introduction to computer vision
Marcin Jedyk
 
Introduction to computer vision with Convoluted Neural Networks
Introduction to computer vision with Convoluted Neural NetworksIntroduction to computer vision with Convoluted Neural Networks
Introduction to computer vision with Convoluted Neural Networks
MarcinJedyk
 
Learn to Build an App to Find Similar Images using Deep Learning- Piotr Teterwak
Learn to Build an App to Find Similar Images using Deep Learning- Piotr TeterwakLearn to Build an App to Find Similar Images using Deep Learning- Piotr Teterwak
Learn to Build an App to Find Similar Images using Deep Learning- Piotr Teterwak
PyData
 
MXNet Workshop
MXNet WorkshopMXNet Workshop
MXNet Workshop
Amazon Web Services
 

Similar to NVIDIA 深度學習教育機構 (DLI): Image segmentation with tensorflow (20)

Neural Networks with Google TensorFlow
Neural Networks with Google TensorFlowNeural Networks with Google TensorFlow
Neural Networks with Google TensorFlow
 
Neural Networks from Scratch - TensorFlow 101
Neural Networks from Scratch - TensorFlow 101Neural Networks from Scratch - TensorFlow 101
Neural Networks from Scratch - TensorFlow 101
 
Introduction to Neural Networks in Tensorflow
Introduction to Neural Networks in TensorflowIntroduction to Neural Networks in Tensorflow
Introduction to Neural Networks in Tensorflow
 
Blazing Performance with Flame Graphs
Blazing Performance with Flame GraphsBlazing Performance with Flame Graphs
Blazing Performance with Flame Graphs
 
Machine Learning, Deep Learning and Data Analysis Introduction
Machine Learning, Deep Learning and Data Analysis IntroductionMachine Learning, Deep Learning and Data Analysis Introduction
Machine Learning, Deep Learning and Data Analysis Introduction
 
Deep Learning Made Easy with Deep Features
Deep Learning Made Easy with Deep FeaturesDeep Learning Made Easy with Deep Features
Deep Learning Made Easy with Deep Features
 
TensorFlow and Keras: An Overview
TensorFlow and Keras: An OverviewTensorFlow and Keras: An Overview
TensorFlow and Keras: An Overview
 
Machine Learning Essentials Demystified part2 | Big Data Demystified
Machine Learning Essentials Demystified part2 | Big Data DemystifiedMachine Learning Essentials Demystified part2 | Big Data Demystified
Machine Learning Essentials Demystified part2 | Big Data Demystified
 
OpenPOWER Workshop in Silicon Valley
OpenPOWER Workshop in Silicon ValleyOpenPOWER Workshop in Silicon Valley
OpenPOWER Workshop in Silicon Valley
 
Separating Hype from Reality in Deep Learning with Sameer Farooqui
 Separating Hype from Reality in Deep Learning with Sameer Farooqui Separating Hype from Reality in Deep Learning with Sameer Farooqui
Separating Hype from Reality in Deep Learning with Sameer Farooqui
 
Getting Started with Keras and TensorFlow - StampedeCon AI Summit 2017
Getting Started with Keras and TensorFlow - StampedeCon AI Summit 2017Getting Started with Keras and TensorFlow - StampedeCon AI Summit 2017
Getting Started with Keras and TensorFlow - StampedeCon AI Summit 2017
 
Mathemetics module
Mathemetics moduleMathemetics module
Mathemetics module
 
It's the memory, stupid! CodeJam 2014
It's the memory, stupid!  CodeJam 2014It's the memory, stupid!  CodeJam 2014
It's the memory, stupid! CodeJam 2014
 
(CMP305) Deep Learning on AWS Made EasyCmp305
(CMP305) Deep Learning on AWS Made EasyCmp305(CMP305) Deep Learning on AWS Made EasyCmp305
(CMP305) Deep Learning on AWS Made EasyCmp305
 
Development of Deep Learning Architecture
Development of Deep Learning ArchitectureDevelopment of Deep Learning Architecture
Development of Deep Learning Architecture
 
Introduction to computer vision
Introduction to computer visionIntroduction to computer vision
Introduction to computer vision
 
Introduction to computer vision with Convoluted Neural Networks
Introduction to computer vision with Convoluted Neural NetworksIntroduction to computer vision with Convoluted Neural Networks
Introduction to computer vision with Convoluted Neural Networks
 
Learn to Build an App to Find Similar Images using Deep Learning- Piotr Teterwak
Learn to Build an App to Find Similar Images using Deep Learning- Piotr TeterwakLearn to Build an App to Find Similar Images using Deep Learning- Piotr Teterwak
Learn to Build an App to Find Similar Images using Deep Learning- Piotr Teterwak
 
MXNet Workshop
MXNet WorkshopMXNet Workshop
MXNet Workshop
 
Large scalecplex
Large scalecplexLarge scalecplex
Large scalecplex
 

More from NVIDIA Taiwan

GTC Taiwan 2017 主題演說
GTC Taiwan 2017 主題演說GTC Taiwan 2017 主題演說
GTC Taiwan 2017 主題演說
NVIDIA Taiwan
 
GTC Taiwan 2017 基於 CNN 對易混淆中藥的手機辨識系統
GTC Taiwan 2017 基於 CNN 對易混淆中藥的手機辨識系統GTC Taiwan 2017 基於 CNN 對易混淆中藥的手機辨識系統
GTC Taiwan 2017 基於 CNN 對易混淆中藥的手機辨識系統
NVIDIA Taiwan
 
GTC Taiwan 2017 CUDA 加速先進影像分析技術與深度學習於臨床電腦斷層掃瞄肝細胞腫瘤輔助診斷
GTC Taiwan 2017 CUDA 加速先進影像分析技術與深度學習於臨床電腦斷層掃瞄肝細胞腫瘤輔助診斷GTC Taiwan 2017 CUDA 加速先進影像分析技術與深度學習於臨床電腦斷層掃瞄肝細胞腫瘤輔助診斷
GTC Taiwan 2017 CUDA 加速先進影像分析技術與深度學習於臨床電腦斷層掃瞄肝細胞腫瘤輔助診斷
NVIDIA Taiwan
 
GTC Taiwan 2017 自主駕駛車輛發展平台與技術研發
GTC Taiwan 2017 自主駕駛車輛發展平台與技術研發 GTC Taiwan 2017 自主駕駛車輛發展平台與技術研發
GTC Taiwan 2017 自主駕駛車輛發展平台與技術研發
NVIDIA Taiwan
 
GTC Taiwan 2017 人工智慧:保險科技的未來
GTC Taiwan 2017 人工智慧:保險科技的未來GTC Taiwan 2017 人工智慧:保險科技的未來
GTC Taiwan 2017 人工智慧:保險科技的未來
NVIDIA Taiwan
 
GTC Taiwan 2017 從雲端到終端的瓶頸及解決之道
GTC Taiwan 2017 從雲端到終端的瓶頸及解決之道GTC Taiwan 2017 從雲端到終端的瓶頸及解決之道
GTC Taiwan 2017 從雲端到終端的瓶頸及解決之道
NVIDIA Taiwan
 
GTC Taiwan 2017 如何在充滿未知的巨量數據時代中建構一個數據中心
GTC Taiwan 2017 如何在充滿未知的巨量數據時代中建構一個數據中心GTC Taiwan 2017 如何在充滿未知的巨量數據時代中建構一個數據中心
GTC Taiwan 2017 如何在充滿未知的巨量數據時代中建構一個數據中心
NVIDIA Taiwan
 
GTC Taiwan 2017 用計算來凝視複雜的世界
GTC Taiwan 2017 用計算來凝視複雜的世界 GTC Taiwan 2017 用計算來凝視複雜的世界
GTC Taiwan 2017 用計算來凝視複雜的世界
NVIDIA Taiwan
 
GTC Taiwan 2017 在 Google Cloud 當中使用 GPU 進行效能最佳化
GTC Taiwan 2017 在 Google Cloud 當中使用 GPU 進行效能最佳化GTC Taiwan 2017 在 Google Cloud 當中使用 GPU 進行效能最佳化
GTC Taiwan 2017 在 Google Cloud 當中使用 GPU 進行效能最佳化
NVIDIA Taiwan
 
GTC Taiwan 2017 NVIDIA VRWorks SDK 加速性能與提升 VR 使用經驗
GTC Taiwan 2017 NVIDIA VRWorks SDK 加速性能與提升 VR 使用經驗GTC Taiwan 2017 NVIDIA VRWorks SDK 加速性能與提升 VR 使用經驗
GTC Taiwan 2017 NVIDIA VRWorks SDK 加速性能與提升 VR 使用經驗
NVIDIA Taiwan
 
GTC Taiwan 2017 NVIDIA Holodeck 與 Isaac VR 技術分享
GTC Taiwan 2017 NVIDIA Holodeck 與 Isaac VR 技術分享GTC Taiwan 2017 NVIDIA Holodeck 與 Isaac VR 技術分享
GTC Taiwan 2017 NVIDIA Holodeck 與 Isaac VR 技術分享
NVIDIA Taiwan
 
GTC Taiwan 2017 深度學習於表面瑕疵檢測之應用
GTC Taiwan 2017 深度學習於表面瑕疵檢測之應用GTC Taiwan 2017 深度學習於表面瑕疵檢測之應用
GTC Taiwan 2017 深度學習於表面瑕疵檢測之應用
NVIDIA Taiwan
 
GTC Taiwan 2017 結合智能視覺系統之機械手臂
GTC Taiwan 2017 結合智能視覺系統之機械手臂GTC Taiwan 2017 結合智能視覺系統之機械手臂
GTC Taiwan 2017 結合智能視覺系統之機械手臂
NVIDIA Taiwan
 
GTC Taiwan 2017 以雲端 GPU 將傳統硬體人工智慧化
GTC Taiwan 2017 以雲端 GPU 將傳統硬體人工智慧化GTC Taiwan 2017 以雲端 GPU 將傳統硬體人工智慧化
GTC Taiwan 2017 以雲端 GPU 將傳統硬體人工智慧化
NVIDIA Taiwan
 
GTC Taiwan 2017 GPU 平台上導入深度學習於半導體產業之 EDA 應用
GTC Taiwan 2017 GPU 平台上導入深度學習於半導體產業之 EDA 應用GTC Taiwan 2017 GPU 平台上導入深度學習於半導體產業之 EDA 應用
GTC Taiwan 2017 GPU 平台上導入深度學習於半導體產業之 EDA 應用
NVIDIA Taiwan
 
GTC Taiwan 2017 深度學習與該技術於視訊監控產業上之應用
GTC Taiwan 2017 深度學習與該技術於視訊監控產業上之應用GTC Taiwan 2017 深度學習與該技術於視訊監控產業上之應用
GTC Taiwan 2017 深度學習與該技術於視訊監控產業上之應用
NVIDIA Taiwan
 
GTC Taiwan 2017 企業端深度學習與人工智慧應用
GTC Taiwan 2017 企業端深度學習與人工智慧應用GTC Taiwan 2017 企業端深度學習與人工智慧應用
GTC Taiwan 2017 企業端深度學習與人工智慧應用
NVIDIA Taiwan
 
GTC Taiwan 2017 應用智慧科技於傳染病防治
GTC Taiwan 2017 應用智慧科技於傳染病防治GTC Taiwan 2017 應用智慧科技於傳染病防治
GTC Taiwan 2017 應用智慧科技於傳染病防治
NVIDIA Taiwan
 
NVIDIA深度學習教育機構 (DLI): Deep Learning Institute
NVIDIA深度學習教育機構 (DLI): Deep Learning InstituteNVIDIA深度學習教育機構 (DLI): Deep Learning Institute
NVIDIA深度學習教育機構 (DLI): Deep Learning Institute
NVIDIA Taiwan
 
NVIDIA 深度學習教育機構 (DLI): Neural network deployment
NVIDIA 深度學習教育機構 (DLI): Neural network deploymentNVIDIA 深度學習教育機構 (DLI): Neural network deployment
NVIDIA 深度學習教育機構 (DLI): Neural network deployment
NVIDIA Taiwan
 

More from NVIDIA Taiwan (20)

GTC Taiwan 2017 主題演說
GTC Taiwan 2017 主題演說GTC Taiwan 2017 主題演說
GTC Taiwan 2017 主題演說
 
GTC Taiwan 2017 基於 CNN 對易混淆中藥的手機辨識系統
GTC Taiwan 2017 基於 CNN 對易混淆中藥的手機辨識系統GTC Taiwan 2017 基於 CNN 對易混淆中藥的手機辨識系統
GTC Taiwan 2017 基於 CNN 對易混淆中藥的手機辨識系統
 
GTC Taiwan 2017 CUDA 加速先進影像分析技術與深度學習於臨床電腦斷層掃瞄肝細胞腫瘤輔助診斷
GTC Taiwan 2017 CUDA 加速先進影像分析技術與深度學習於臨床電腦斷層掃瞄肝細胞腫瘤輔助診斷GTC Taiwan 2017 CUDA 加速先進影像分析技術與深度學習於臨床電腦斷層掃瞄肝細胞腫瘤輔助診斷
GTC Taiwan 2017 CUDA 加速先進影像分析技術與深度學習於臨床電腦斷層掃瞄肝細胞腫瘤輔助診斷
 
GTC Taiwan 2017 自主駕駛車輛發展平台與技術研發
GTC Taiwan 2017 自主駕駛車輛發展平台與技術研發 GTC Taiwan 2017 自主駕駛車輛發展平台與技術研發
GTC Taiwan 2017 自主駕駛車輛發展平台與技術研發
 
GTC Taiwan 2017 人工智慧:保險科技的未來
GTC Taiwan 2017 人工智慧:保險科技的未來GTC Taiwan 2017 人工智慧:保險科技的未來
GTC Taiwan 2017 人工智慧:保險科技的未來
 
GTC Taiwan 2017 從雲端到終端的瓶頸及解決之道
GTC Taiwan 2017 從雲端到終端的瓶頸及解決之道GTC Taiwan 2017 從雲端到終端的瓶頸及解決之道
GTC Taiwan 2017 從雲端到終端的瓶頸及解決之道
 
GTC Taiwan 2017 如何在充滿未知的巨量數據時代中建構一個數據中心
GTC Taiwan 2017 如何在充滿未知的巨量數據時代中建構一個數據中心GTC Taiwan 2017 如何在充滿未知的巨量數據時代中建構一個數據中心
GTC Taiwan 2017 如何在充滿未知的巨量數據時代中建構一個數據中心
 
GTC Taiwan 2017 用計算來凝視複雜的世界
GTC Taiwan 2017 用計算來凝視複雜的世界 GTC Taiwan 2017 用計算來凝視複雜的世界
GTC Taiwan 2017 用計算來凝視複雜的世界
 
GTC Taiwan 2017 在 Google Cloud 當中使用 GPU 進行效能最佳化
GTC Taiwan 2017 在 Google Cloud 當中使用 GPU 進行效能最佳化GTC Taiwan 2017 在 Google Cloud 當中使用 GPU 進行效能最佳化
GTC Taiwan 2017 在 Google Cloud 當中使用 GPU 進行效能最佳化
 
GTC Taiwan 2017 NVIDIA VRWorks SDK 加速性能與提升 VR 使用經驗
GTC Taiwan 2017 NVIDIA VRWorks SDK 加速性能與提升 VR 使用經驗GTC Taiwan 2017 NVIDIA VRWorks SDK 加速性能與提升 VR 使用經驗
GTC Taiwan 2017 NVIDIA VRWorks SDK 加速性能與提升 VR 使用經驗
 
GTC Taiwan 2017 NVIDIA Holodeck 與 Isaac VR 技術分享
GTC Taiwan 2017 NVIDIA Holodeck 與 Isaac VR 技術分享GTC Taiwan 2017 NVIDIA Holodeck 與 Isaac VR 技術分享
GTC Taiwan 2017 NVIDIA Holodeck 與 Isaac VR 技術分享
 
GTC Taiwan 2017 深度學習於表面瑕疵檢測之應用
GTC Taiwan 2017 深度學習於表面瑕疵檢測之應用GTC Taiwan 2017 深度學習於表面瑕疵檢測之應用
GTC Taiwan 2017 深度學習於表面瑕疵檢測之應用
 
GTC Taiwan 2017 結合智能視覺系統之機械手臂
GTC Taiwan 2017 結合智能視覺系統之機械手臂GTC Taiwan 2017 結合智能視覺系統之機械手臂
GTC Taiwan 2017 結合智能視覺系統之機械手臂
 
GTC Taiwan 2017 以雲端 GPU 將傳統硬體人工智慧化
GTC Taiwan 2017 以雲端 GPU 將傳統硬體人工智慧化GTC Taiwan 2017 以雲端 GPU 將傳統硬體人工智慧化
GTC Taiwan 2017 以雲端 GPU 將傳統硬體人工智慧化
 
GTC Taiwan 2017 GPU 平台上導入深度學習於半導體產業之 EDA 應用
GTC Taiwan 2017 GPU 平台上導入深度學習於半導體產業之 EDA 應用GTC Taiwan 2017 GPU 平台上導入深度學習於半導體產業之 EDA 應用
GTC Taiwan 2017 GPU 平台上導入深度學習於半導體產業之 EDA 應用
 
GTC Taiwan 2017 深度學習與該技術於視訊監控產業上之應用
GTC Taiwan 2017 深度學習與該技術於視訊監控產業上之應用GTC Taiwan 2017 深度學習與該技術於視訊監控產業上之應用
GTC Taiwan 2017 深度學習與該技術於視訊監控產業上之應用
 
GTC Taiwan 2017 企業端深度學習與人工智慧應用
GTC Taiwan 2017 企業端深度學習與人工智慧應用GTC Taiwan 2017 企業端深度學習與人工智慧應用
GTC Taiwan 2017 企業端深度學習與人工智慧應用
 
GTC Taiwan 2017 應用智慧科技於傳染病防治
GTC Taiwan 2017 應用智慧科技於傳染病防治GTC Taiwan 2017 應用智慧科技於傳染病防治
GTC Taiwan 2017 應用智慧科技於傳染病防治
 
NVIDIA深度學習教育機構 (DLI): Deep Learning Institute
NVIDIA深度學習教育機構 (DLI): Deep Learning InstituteNVIDIA深度學習教育機構 (DLI): Deep Learning Institute
NVIDIA深度學習教育機構 (DLI): Deep Learning Institute
 
NVIDIA 深度學習教育機構 (DLI): Neural network deployment
NVIDIA 深度學習教育機構 (DLI): Neural network deploymentNVIDIA 深度學習教育機構 (DLI): Neural network deployment
NVIDIA 深度學習教育機構 (DLI): Neural network deployment
 

Recently uploaded

Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 

Recently uploaded (20)

Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 

NVIDIA 深度學習教育機構 (DLI): Image segmentation with tensorflow

  • 1. 1 Antonie Lin Image Segmentation with TensorFlow Certified Instructor, NVIDIA Deep Learning Institute NVIDIA Corporation
  • 2. 2 DEEP LEARNING INSTITUTE DLI Mission Helping people solve challenging problems using AI and deep learning. • Developers, data scientists and engineers • Self-driving cars, healthcare and robotics • Training, optimizing, and deploying deep neural networks
  • 3. 33 TOPICS • Lab Perspective • Image Segmentation • TensorFlow • Lab • Discussion / Overview • Launching the Lab Environment • Lab Review
  • 5. 5 WHAT THIS LAB IS • Discussion/Demonstration of image segmentation using Deep Learning • Hands-on exercises using TensorFlow for CNN training and evaluation of image segmentation workflow
  • 6. 6 WHAT THIS LAB IS NOT • Intro to machine learning from first principles • Rigorous mathematical formalism of convolutional neural networks • Survey of all the features and options of TensorFlow
  • 7. 7 BACKGROUND ASSUMPTIONS • You are familiar with convolutional neural networks (CNN) • Helpful to have: • Image recognition experience • TensorFlow experience • Python experience
  • 8. 8 TAKE AWAYS • You can setup your own image segmentation workflow in TensorFlow and adapt it to your use case • Know where to go for more info • Familiarity with TensorFlow
  • 10. 10 COMPUTER VISION TASKS Image Segmentation Object Detection Image Classification + Localization Image Classification (inspired by a slide used in cs231n lecture from Stanford University)
  • 11. 11 IMAGE SEGMENTATION • “Segmentation” sometimes used to describe similar but slightly different tasks • In this lab, semantic segmentation will be performed • i.e., in an image, each pixel will be placed into one of multiple classes • In a sense it’s a classification problem where each pixel has a class, vs image recognition where each image (collection of pixels) has a class • Specifically we’ll be looking at medical imaging data and attempting to determine where the left ventricle (LV) is • i.e., for each pixel is it part of LV or not?
  • 13. 13 WHAT IS TENSORFLOW? Created by Google, tensorflow.org • “Open source software library for machine intelligence” • Available on GitHub • Flexibility—express your computation as a data flow graph • If you can express it in TF syntax you can run it • Portability—CPUs and GPUs, workstation, server, mobile • Language options—Python and C++ • Performance—Tuned for performance on CPUs and GPUs • Assign tasks to different hardware devices • Uses CUDNN TensorFlow, the TensorFlow logo and any related marks are trademarks of Google Inc.
  • 14. 14 RUNNING TENSORFLOW • Construct a graph—this happens before any real computation happens • Specify your neural network as a graph • Variables--characteristics of the graph that can change over time • i.e., learned weights • Operations—computations that combine the variables and the data • e.g., convolution, activation, matrix multiply, etc. • Launch a session • This is TF verbiage for executing a graph • Taking data and running it through a previously-created graph
  • 15. 15 SAMPLE WORKFLOW • Prepare input data • Can use numpy arrays but for very large datasets TFRecords are recommended • Build the computation graph • Create inference, loss, training nodes • Train the model • Inject input data into graph in a TF session and loop over your input data. • Specify things like batch size, number of epochs, learning rate, etc. • Evaluate the model • Run inference on graph and then evaluate accuracy based on suitable metric
  • 16. 16 TENSORBOARD • TF tool to visualize training progress • Plots of loss, learning rate, accuracy • Visualize computation graph • Will use TensorBoard during this lab • Extremely useful to aggregate training and evaluation statistics for clear analysis of the model behavior
  • 17. 17 TENSORBOARD GRAPH EXAMPLE • Evaluation graph for NN with 1 hidden layer • Each box clicks to expand • Shows you the operations and the variables in each user-defined node
  • 18. 1818 INFERENCE GRAPH EXAMPLE with tf.name_scope('Hidden1'): W_fc = tf.Variable(tf.truncated_normal( [256*256, 512], stddev=0.1, dtype=tf.float32), name='W_fc') flatten1_op = tf.reshape( images_re, [-1, 256*256]) h_fc1 = tf.matmul( flatten1_op, W_fc ) with tf.name_scope('Final'): W_fc2 = tf.Variable(tf.truncated_normal( [512, 256*256*2], stddev=0.1, dtype=tf.float32), name='W_fc2' ) h_fc2 = tf.matmul( h_fc1, W_fc2 ) h_fc2_re = tf.reshape( h_fc2, [-1, 256, 256, 2] ) return h_fc2_re
  • 20. 20 DATASET • Cardiac MRI short-axis (SAX) scans • Sunnybrook cardiac images from earlier competition http://smial.sri.utoronto.ca/LV_Challenge/Data.html • "Sunnybrook Cardiac MR Database" is made available under the CC0 1.0 Universal license described above, and with more detail here: http://creativecommons.org/publicdomain/zero/1.0/ • Attribution: • Radau P, Lu Y, Connelly K, Paul G, Dick AJ, Wright GA. "Evaluation Framework for Algorithms Segmenting Short Axis Cardiac MRI." The MIDAS Journal -Cardiac MR Left Ventricle Segmentation Challenge, http://hdl.handle.net/10380/3070
  • 22. 22 IMAGE EXAMPLES Complete images and expertly labeled contours of LV
  • 23. 23 DATA DETAILS • Original images are 256 x 256 grayscale DICOM format • Output is a tensor of size 256 x 256 x 2 • Each pixel belongs to one of two classes • Training set consist of 234 images • Validation set consist of 26 images
  • 24. 24 BACKGROUND DATA SETUP • Lots of guidance and code for how to setup/extract data taken from here: • https://www.kaggle.com/c/second-annual-data-science-bowl/details/deep-learning- tutorial • Images and contours have been extracted from the raw data and packaged up for ingest into TensorFlow • Data extraction code is included but won’t be demo’d. • TensorFlow data records provided but raw data is NOT provided for this lab • If interested you can download yourself
  • 25. 25 TASK 1 Ensure things are working properly! • Train and test a fully-connected neural network with one hidden layer • Visual representation of this network appears on next slide • For the loss computation we’ll use TF built-in sparse_softmax_cross_entropy_with_logits • Computes softmax of the inference output then cross entropy against the correct labels
  • 26. 26 TASK 1 – NEURAL NETWORK One hidden layer only Input layer 65536 (256 x 256) pixels hidden layer 512 output layer 256 x 256 x 2
  • 27. 27 TASK 1 - TENSORBOARD • You can choose the train or eval graph • This is the training graph • You can click to expand any node to see more detail • If you run more training and/or eval runs, and refresh your browser, the stats will update
  • 28. 28 TASK 2 - ADDITIONAL LAYERS • Convolution layers • Previous example focused on each input pixel • What if features encompass multiple input pixels • Can use convolutions to capture larger receptive fields
  • 29. 29 TASK 2 - ADDITIONAL LAYERS • Pooling layers • Essentially a down-sampling method retaining information while eliminating some computational complexity
  • 30. 30 TASK 2 - ADDITIONAL LAYER • Deconvolution (transpose convolution) layer • Up-sampling method to bring a smaller image data set back up to it’s original size for final pixel classification • Long et al (CVPR2015) has nice paper re: FCN for segmentation • Created FCNs from AlexNet and other canonical networks • Zeiler et al (CVPR2010) describes deconvolution • Network we will use is very similar to Vu Tran’s kaggle example here: https://www.kaggle.com/c/second-annual-data-science-bowl/details/deep- learning-tutorial
  • 31. 31 TASK 2 - FULLY CONVOLUTIONAL NETWORK (FCN) • RECALL: Image classification layers—Convolutions, pooling, activations, fully connected • Output is an N-dimensional vector where N == Number_of_classes
  • 32. 32 TASK 2 - FULLY CONVOLUTIONAL NETWORK (FCN) • Can we leverage this network to do segmentation? YES! • Replace fully connected layer(s) with deconvolution (transpose convolution) • Output is a 256 x 256 x N tensor where N == Number_of_classes • In this lab N == 2
  • 33. 33 TASK 3 - DICE METRIC • Metric to compare the similarity of two samples: 2 𝐴 𝑛𝑙________________________________ 𝐴 𝑛 + 𝐴𝑙 • Where: • An is the area of the contour predicted by the network • Al is the area of the contour from the label • Anl is the intersection of the two • The area of the contour that is predicted correctly by the network • 1.0 means perfect score. • More accurately compute how well we’re predicting the contour against the label • We can just count pixels to give us the respective areas
  • 34. 34 TASK 3 - TRAINING PARAMETERS Important to search the space of parameters • learning_rate: initial learning rate • decay_rate: the rate that the initial learning rate decays • e.g., 1.0 is no decay, 0.5 means cut the decay rate in half each number of (decay) steps • decay_steps: number of steps to execute before changing learning rate • num_epochs: number of times to cycle through the input data • batch_size: keep at 1 for now • Experiment with learning_rate, decay_rate, decay_steps, num_epoch • Record the parameters that give you the best Dice score
  • 35. 35 NAVIGATING TO QWIKLABS 1. Navigate to: https://nvlabs.qwiklab.com 1. Login or create a new account
  • 36. 36 ACCESSING LAB ENVIRONMENT • Select the event specific In- Session Class in the upper left • Click the “Image Segmentation with TensorFlow” Class from the list
  • 38. 38 LAB SUMMARY • Intro to image segmentation • Classifying pixels vs images • Converted image recognition network into FCN for segmentation. • Used TensorFlow as framework to explore various optimizations to FCN • Explored new accuracy metric (Dice metric) to better capture true accuracy
  • 39. 39 TASK 1 - TRAINING OUTPUT !python exercises/simple/runTraining.py –-data_dir /data Output: OUTPUT: Step 0: loss = 2.621 (0.169 sec) OUTPUT: Step 100: loss = 4.958 (0.047 sec) OUTPUT: Step 200: loss = 4.234 (0.047 sec) OUTPUT: Done training for 1 epochs, 231 steps. Lots of messages printed to the screen - look for “OUTPUT”
  • 40. 40 TASK 1 - EVALUATION !python exercises/simple/runEval.py –-data_dir /data Output: OUTPUT: 2016-08-23 15:37:26.752794: accuracy = 0.504 OUTPUT: 26 images evaluated from file /tmp/sunny_data/val_images.tfrecords • Output shows the accuracy of the predictions and which data was utilized • 1.0 means the NN classified all the data the same as the label, ie 100% correct
  • 41. 4141 TASK 1 SOLUTION with tf.name_scope('Hidden1'): W_fc = tf.Variable(tf.truncated_normal( [256*256, 512], stddev=0.1, dtype=tf.float32), name='W_fc') flatten1_op = tf.reshape( images_re, [-1, 256*256]) h_fc1 = tf.matmul( flatten1_op, W_fc ) with tf.name_scope('Final'): W_fc2 = tf.Variable(tf.truncated_normal( [512, 256*256*2], stddev=0.1, dtype=tf.float32), name='W_fc2' ) h_fc2 = tf.matmul( h_fc1, W_fc2 ) h_fc2_re = tf.reshape( h_fc2, [-1, 256, 256, 2] ) return h_fc2_re
  • 42. 42 TASK 2 exercises/tf/segmentation/cnn/neuralnetwork.py • Finish the CNN, replace “FIXME” • vi / vim the file and type /FIXME to identify where to make changes • You need to figure out the dimensions • Convolution1, 5x5 kernel, stride 2; Maxpooling1, 2x2 window, stride 2 • Convolution2, 5x5 kernel, stride 2; Maxpooling2, 2x2 window, stride 2 • Convolution3, 3x3 kernel, stride 1; Convolution4, 3x3 kernel, stride 1 • Score_classes, 1x1 kernel, stride 1; Upscore (DeConv), 31x31 kernel, stride 16 • Optional / Time Permitting: Experiment with num_epochs
  • 43. 4343 TASK 2 - PARTIAL SOLUTION with tf.name_scope('Conv1'): W_conv1 = tf.Variable(tf.truncated_normal([5,5,1,100],stddev=0.1, dtype=tf.float32),name='W_conv1') print_tensor_shape( W_conv1, 'W_conv1 shape') conv1_op = tf.nn.conv2d( images_re, W_conv1, strides=[1,2,2,1], padding="SAME", name='conv1_op' ) print_tensor_shape( conv1_op, 'conv1_op shape') with tf.name_scope('Pool1'): pool1_op = tf.nn.max_pool(relu1_op, ksize=[1,2,2,1], strides=[1,2,2,1], padding='SAME') print_tensor_shape( pool1_op, 'pool1_op shape')
  • 44. 44 TASK 2 - EVALUATION RESULTS • 1 epoch of training OUTPUT: 2016-08-26 20:44:55.012370: precision = 0.571 • 30 epochs of training OUTPUT: 2016-08-26 20:48:16.593103: precision = 0.985 • 98.5% accurate! • Very good accuracy, are we done?
  • 45. 45 TASK 2 - ACCURACY • How are we determining accuracy • We are comparing the pixel value in the label with the value computed by the CNN • So 98.5% of the time we are predicting the pixel correctly • However, the size of the contour is relatively small compared to the entire image Class imbalance problem • If we simply output the notLV class for every pixel we’d have over 95% accuracy • Clearly this isn’t what we want
  • 46. 46 TASK 3 - EVALUTION RESULTS • Recall result from prior example: • 1 epoch: precision = 0.501 • 30 epochs: precision = 0.985 • Now with Dice metric (recall 1.0 is perfect accuracy) • 1 epoch: Dice metric = 0.033 • 30 epochs: Dice metric = 0.579 • Not as good as we originally thought
  • 47. 47 TASK 3 - RESULT One possible result --learning_rate=0.03 --decay_rate=0.75 --num_epochs=100 --decay_steps=10000 OUTPUT: 2016-08-26 21:22:15.590642: Dice metric = 0.861 Accuracy now looking much better!
  • 48. 48 WHAT ELSE? • Run training longer • For demo purposes we ran really short training runs • Need more epochs • More training data • We only had 236 images in our training set • Gather more data • Augment images that we have with rotations, inversions, etc. • TF has functions to flip/rotate/transpose automatically • Larger more complicated networks
  • 49. 49 WHAT’S NEXT • Use / practice what you learned • Discuss with peers practical applications of DNN • Reach out to NVIDIA and the Deep Learning Institute
  • 50. 5050 WHAT’S NEXT …for the chance to win an NVIDIA SHIELD TV. Check your email for a link. TAKE SURVEY Check your email for details to access more DLI training online. ACCESS ONLINE LABS Visit www.nvidia.com/dli for workshops in your area. ATTEND WORKSHOP Visit https://developer.nvidia.com/join for more. JOIN DEVELOPER PROGRAM