TensorFlow Dev Summit 2017 요약

Post on 12-Apr-2017

1.151 views 9 download

Transcript of TensorFlow Dev Summit 2017 요약

tf.Session()

agenda = tf.summary.merge(dev.summit, 2017)

sess.run(agenda)

KeynoteDistBelief -> TensorFlow

제품 뿐 아니라 연구 레벨에서까지 광범위하게 사용 가능

RNN 등의 복잡한 모델까지 커버 가능하다

CPU, GPU, TPU, Android, iOS, Raspberry Pi 등 다양한 플랫폼 지원

구Ú 클라우드에서도 사용 가능

Python, C++, Java, Go, Haskell, R ...

텐서보드 짱짱맨

Keynote

Keynote

Keynote

Keynote - TensorFlow 1.058배 빨라짐

XLA (Accelerated Linear Algebra), JIT

하이레벨 API 제공

Layers

Keras

Estimator

Canned Estimators

API 안정화

Keynote - TensorFlow 1.0

Keynote - TensorFlow 1.0

TensorBoardScalars

Images

Audio

Graphs

Distributions

Histogram

Embeddings

TensorBoard

Future for TensorBoardTensorFlow Debugger Integration

Plugins

Org-scale TensorBoard

TensorFlow at DeepMindChoosing a Platform

Flexibility

Usability

Scalability

Performance

Production Readiness

TensorFlow at DeepMindData 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 EmbeddedARM

CEVA

Movidius

IBM Power Systems

Intel

Qualcomm

Mobile and EmbeddedAndroid

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 EmbeddedInception 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 Embedded12 MB increase, before tuning

2 MB increase, after tuning for Inception v3

Selective registration -DSELECTIVE_REGISTRATION

Distributed TensorFlow

Distributed TensorFlowwith 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 TensorFlowcluster = 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 EcosystemData 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 EcosystemPython -> Training

C

C++

Go

Haskell

Rust

Java

Serving Models

Serving Models

Serving ModelsOnline, low latency

Mutiple models in a single process

Mutiple versions of a model loaded over time

Compute cost varies in real-time to meet productdemand

auto-scale with CloudML, Docker & K8s

Aim for the ef�ciency of mini-batching at trainingtime ...

ML Toolkitsmodel = 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 ToolkitsLinearClassi�er

LinearRegressor

LogisticRegressor

KMeansClustering

WALSModel

SVM

TensorForestEstimator

DNN, RNN, LSTM, Wide & Deep, ...

ML Toolkitstensor�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"]

ETCXLA: 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()