tf.Session()
agenda = tf.summary.merge(dev.summit, 2017)
sess.run(agenda)
Keynote
DistBelief -> TensorFlow
제품 뿐 아니라 연구 레벨에서까지 광범위하게 사용 가능
RNN 등의 복잡한 모델까지 커버 가능하다
CPU, GPU, TPU, Android, iOS, Raspberry Pi 등 다양
한 플랫폼 지원
구글 클라우드에서도 사용 가능
Python, C++, Java, Go, Haskell, R ...
텐서보드 짱짱맨
Keynote
Keynote
Keynote
Keynote - TensorFlow 1.0
58배 빨라짐
XLA (Accelerated Linear Algebra), JIT
하이레벨 API 제공
Layers
Keras
Estimator
Canned Estimators
API 안정화
Keynote - TensorFlow 1.0
Keynote - TensorFlow 1.0
TensorBoard
Scalars
Images
Audio
Graphs
Distributions
Histogram
Embeddings
TensorBoard
Future for TensorBoard
TensorFlow Debugger Integration
Plugins
Org-scale TensorBoard
TensorFlow at DeepMind
Choosing a Platform
Flexibility
Usability
Scalability
Performance
Production Readiness
TensorFlow at DeepMind
Data Center Cooling
Gorila (DistBelief -> TensorFlow)
AlphaGo
WaveNet
Text to Speech
Music Generation
Learning to Learn
TensorFlow at DeepMind
TensorFlow at DeepMind
TensorFlow at DeepMind
Mobile and Embedded
ARM
CEVA
Movidius
IBM Power Systems
Intel
Qualcomm
Mobile and Embedded
Android
tensor ow/examples/android
TF Classify, TF Detect, TF Stylize
iOS
tensor ow/contrib/ios_examples
Inception image labeling
Raspberry Pi
tensor ow/contrib/pi_examples/label_image
tensor ow/contrib/pi_examples/camera
Mobile and Embedded
Inception v3 is 93 MB!
Inception v1 quantized is just 7 MB
Exporting Models
Freeze graph
Graph Transform Tool
Quantize weights
Quantize calculations
Memory mapping
Mobile and Embedded
12 MB increase, before tuning
2 MB increase, after tuning for Inception v3
Selective registration
-DSELECTIVE_REGISTRATION
Distributed TensorFlow
Distributed TensorFlow
with tf.device("/job:ps/task:0/cpu:0"):
W = tf.Variable(...)
b = tf.Variable(...)
with tf.device("/job:worker/task:0/gpu:0"):
output = tf.matmul(input, W) + b
loss = f(output)
Distributed TensorFlow
cluster = tf.train.ClusterSpec({
"worker": ["192.168.0.1:2222", ...],
"ps": ["192.168.1.1:2222", ...]})
server = tf.train.Server(
cluster,
job_name="worker",
task_index=0)
with tf.Session(server.target) as sess:
...
TensorFlow Ecosystem
Data Processing (TFRecords)
Apache Beam : Native support
Hadoop MR and Spark
Cluster Manager
Kubernetes, Hadoop, MESOS, Slurm
Distributed Storage
Hadoop HDFS, Google Cloud Storage, AWS EFS
Serving
TensorFlow Ecosystem
Python -> Training
C
C++
Go
Haskell
Rust
Java
Serving Models
Serving Models
Serving Models
Online, low latency
Mutiple models in a single process
Mutiple versions of a model loaded over time
Compute cost varies in real-time to meet product
demand
auto-scale with CloudML, Docker & K8s
Aim for the ef ciency of mini-batching at training
time ...
ML Toolkits
model = KMeansClustering(num_clusters=1000)
model.fit(
input_fn=numpy_input_fn(points, num_epochs=None),
steps=1000)
clusters = model.clusters()
assignments = model.predict_cluster_idx(
input_fn=numpy_input_fn(test_points))
ML Toolkits
LinearClassi er
LinearRegressor
LogisticRegressor
KMeansClustering
WALSModel
SVM
TensorForestEstimator
DNN, RNN, LSTM, Wide & Deep, ...
ML Toolkits
tensor ow/contrib/learn/python/learn
classifier = tf.contrib.learn.DNNClassifier(
feature_columns=feature_columns,
hidden_units=[10, 20, 10],
n_classes=3,
model_dir="/tmp/iris_model")
classifier.fit(x=training_set.data,
y=training_set.target,
steps=2000)
accuracy_score = classifier.evaluate(
x=test_set.data,
y=test_set.target)["accuracy"]
ETC
XLA: TensorFlow, Compiled!
Skin Cancer Image Classi cation
Sequence Models and the RNN API
TensorFlow in Medicine
Wide & Deep Learning
Magenta: Music and Art Generation
Fast, Flexible, TensorBoard, Community
Science -> Engineering
sess.close()

TensorFlow Dev Summit 2017 요약