SlideShare a Scribd company logo
1 of 28
Download to read offline
LET US: GO 2017 FALL
WHY
You have just found Keras
• Francois Chollet
• API
• TesnsorFlow, Theano, CNTK
############################
###DNN in TensorFlow Only###
############################
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
###1. Load data set, and split it if necessary
mnist = input_data.read_data_sets("MNIST_data/")
###2. we create a holder, a container to place the computation activities in tensorflow
###identifying format and tensor's r/c, null means any kind
VISIBLE_NODES = 784
HIDDEN_NODES = 400
x = tf.placeholder("float", shape=[None, VISIBLE_NODES])
y = tf.placeholder("float", shape=[None, 10])
###3. We identify weights and biases with tensor shape, start with 0
weights = tf.Variable(tf.random_normal((VISIBLE_NODES, HIDDEN_NODES),
mean=0.0, stddev=1. / VISIBLE_NODES))
hidden_bias = tf.Variable(tf.zeros([HIDDEN_NODES]))
visible_bias = tf.Variable(tf.zeros([VISIBLE_NODES]))
###4. set up the sigmoid model and multiply x and W with matmul function, building the
###hidden layer and reconstruction layer
hidden_activation = tf.nn.sigmoid(tf.matmul(x, weights) + hidden_bias)
visible_reconstruction = tf.nn.sigmoid(tf.matmul(hidden_activation, tf.transpose(weights))
+ visible_bias)
final_hidden_activation = tf.nn.sigmoid(tf.matmul(visible_reconstruction, weights)
+ hidden_bias)
###5. This process can be understood as being two phases of learning
###positive and negative or, more poetically, waking and sleeping
positive_phase = tf.matmul(tf.transpose(x), hidden_activation)
negative_phase = tf.matmul(tf.transpose(visible_reconstruction), final_hidden_activation)
LEARNING_RATE = 0.01
weight_update = weights.assign_add(LEARNING_RATE *
(positive_phase - negative_phase))
visible_bias_update = visible_bias.assign_add(LEARNING_RATE *
tf.reduce_mean(x - visible_reconstruction, 0))
hidden_bias_update = hidden_bias.assign_add(LEARNING_RATE *
tf.reduce_mean(hidden_activation - final_hidden_activation, 0))
###6. Now we create the operations for scaling the hidden and visible biases, with loss
###function feedback
train_op = tf.group(weight_update, visible_bias_update, hidden_bias_update)
loss_op = tf.reduce_sum(tf.square(x - visible_reconstruction))
###7. We start the session
session = tf.Session()
session.run(tf.global_variables_initializer())
current_epochs = 0
###8.Run the session
for i in range(20):
total_loss = 0
while mnist.train.epochs_completed == current_epochs:
batch_inputs, batch_labels = mnist.train.next_batch(100)
_, reconstruction_loss = session.run([train_op, loss_op], feed_dict={input_placeholder: batch_inputs})
total_loss += reconstruction_loss
print("epochs %s loss %s" % (current_epochs, reconstruction_loss))
current_epochs = mnist.train.epochs_completed
##############################
###DNN in TensorFlow KeRas ###
##############################
###1. Load Data and Splot Data
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers.core import Dense, Activation
from keras.utils import np_utils
(X_train, Y_train), (X_test, Y_test) = mnist.load_data()
###2.Preprocess
X_train = X_train.reshape(60000, 784)
X_test = X_test.reshape(10000, 784)
X_train = X_train.astype('float32')
X_test = X_test.astype('float32')
X_train /= 255
X_test /= 255
classes = 10
Y_train = np_utils.to_categorical(Y_train, classes)
Y_test = np_utils.to_categorical(Y_test, classes)
###3. Set up parameters
input_size = 784
batch_size = 100
hidden_neurons = 400
epochs = 30
###4.Build the model
model = Sequential()
model.add(Dense(hidden_neurons, input_dim=input_size))
model.add(Activation('relu'))
model.add(Dense(classes, input_dim=hidden_neurons))
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy',
metrics=['accuracy'], optimizer='adadelta')
model.fit(X_train, Y_train, batch_size=batch_size, epochs=epochs, verbose=1)
###5.Test
score = model.evaluate(X_test, Y_test, verbose=1)
print('n''Test accuracy:', score[1])
#Test accuracy: 0.983
VS
Keras
TensorFlow
https://charleshsliao.wordpress.com/2017/06/19/dnn-and-cnn-of-tensorflowkeras-with-mnist-data/
: https://tykimos.github.io/
𝒀 = 𝑤 × 𝑿 + 𝑏
𝒀 𝑤 𝑿 𝑏
𝒀 𝑤 𝑿 𝑏
𝑤 𝑏 !
𝒀 = 𝑤 × 𝑿 + 𝑏
𝑤 𝑏 !
: https://tykimos.github.io/
from keras.preprocessing.image import ImageDataGenerator
# 1.
train_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(
‘handwriting_shape/train', //
target_size=(28, 28), //
batch_size=10, //
class_mode=‘categorical') //
from keras.models import Sequential
from keras.layers import Dense, Flatten
from keras.layers.convolutional import Conv2D, MaxPooling2D
# 2.
model = Sequential() //
model.add(Conv2D(32, // ??
kernel_size=(3, 3), // ??
activation=‘relu’, //
input_shape=(28, 28, 3)) // ( , )
model.add(Conv2D(64, (3, 3), activation=‘relu')) //
model.add(MaxPooling2D(pool_size=(2, 2))) // ??
model.add(Flatten()) // -> ??
model.add(Dense(128, activation=‘relu'))
model.add(Dense(4, activation='softmax'))
: https://tykimos.github.io/
: https://tykimos.github.io/
: https://tykimos.github.io/
: https://tykimos.github.io/
# 2.
from keras.models import Sequential
from keras.layers import Dense, Flatten
from keras.layers.convolutional import Conv2D, MaxPooling2D
model = Sequential() //
model.add(Conv2D(32, //
kernel_size=(3, 3), //
activation=‘relu’, //
input_shape=(28, 28, 3)) // ( , )
model.add(Conv2D(64, (3, 3), activation=‘relu')) //
model.add(MaxPooling2D(pool_size=(2, 2))) //
model.add(Flatten()) // ->
model.add(Dense(128, activation=‘relu’)) //
model.add(Dense(4, activation=‘softmax')) //
# 3.
model.compile(loss='categorical_crossentropy',
optimizer='adam', metrics=[‘accuracy']) //
# 4.
model.fit_generator(
train_generator, //
steps_per_epoch=30, // / (=300/10)
epochs=150) //
# 5.
score=model.evaluate_generator(test_generator, steps=3)
# 6. coreml
import coremltools
coreml_model = coremltools.converters.keras.convert(model,
input_names=‘image’, // =
output_names=‘class',
image_input_names = ‘image',
class_labels = ['circle', 'rectangle', ‘triangle'], //
is_bgr=True)
coreml_model.save(‘shape_detect_with_keras.mlmodel') //
# 7. coreml
import CoreML
let model = shape_detect_with_keras()
guard let output: shape_detect_with_kerasOutput =
try? model.prediction(image: image) else { return }
You have just found Keras
https://github.com/MijeongJeon/ShapeDetector_Keras_CoreML/
ninevincentg@gmail.com

More Related Content

Similar to 프알못의 Keras 사용기

TensorFlow Lite (r1.5) & Android 8.1 Neural Network API
TensorFlow Lite (r1.5) & Android 8.1 Neural Network APITensorFlow Lite (r1.5) & Android 8.1 Neural Network API
TensorFlow Lite (r1.5) & Android 8.1 Neural Network APIMr. Vengineer
 
Machine Learning - Introduction to Tensorflow
Machine Learning - Introduction to TensorflowMachine Learning - Introduction to Tensorflow
Machine Learning - Introduction to TensorflowAndrew Ferlitsch
 
Introduction to TensorFlow 2.0
Introduction to TensorFlow 2.0Introduction to TensorFlow 2.0
Introduction to TensorFlow 2.0Databricks
 
Deep Learning and TensorFlow
Deep Learning and TensorFlowDeep Learning and TensorFlow
Deep Learning and TensorFlowOswald Campesato
 
Power ai tensorflowworkloadtutorial-20171117
Power ai tensorflowworkloadtutorial-20171117Power ai tensorflowworkloadtutorial-20171117
Power ai tensorflowworkloadtutorial-20171117Ganesan Narayanasamy
 
maXbox starter65 machinelearning3
maXbox starter65 machinelearning3maXbox starter65 machinelearning3
maXbox starter65 machinelearning3Max Kleiner
 
Need an detailed analysis of what this code-model is doing- Thanks #St.pdf
Need an detailed analysis of what this code-model is doing- Thanks #St.pdfNeed an detailed analysis of what this code-model is doing- Thanks #St.pdf
Need an detailed analysis of what this code-model is doing- Thanks #St.pdfactexerode
 
Machine learning with py torch
Machine learning with py torchMachine learning with py torch
Machine learning with py torchRiza Fahmi
 
Introduction To TensorFlow | Deep Learning with TensorFlow | TensorFlow For B...
Introduction To TensorFlow | Deep Learning with TensorFlow | TensorFlow For B...Introduction To TensorFlow | Deep Learning with TensorFlow | TensorFlow For B...
Introduction To TensorFlow | Deep Learning with TensorFlow | TensorFlow For B...Edureka!
 
GANS Project for Image idetification.pdf
GANS Project for Image idetification.pdfGANS Project for Image idetification.pdf
GANS Project for Image idetification.pdfVivekanandaGN1
 
Image classification using cnn
Image classification using cnnImage classification using cnn
Image classification using cnnDebarko De
 
Session 07 text data.pptx
Session 07 text data.pptxSession 07 text data.pptx
Session 07 text data.pptxSara-Jayne Terp
 
Session 07 text data.pptx
Session 07 text data.pptxSession 07 text data.pptx
Session 07 text data.pptxbodaceacat
 
Session 07 text data.pptx
Session 07 text data.pptxSession 07 text data.pptx
Session 07 text data.pptxSara-Jayne Terp
 
From Tensorflow Graph to Tensorflow Eager
From Tensorflow Graph to Tensorflow EagerFrom Tensorflow Graph to Tensorflow Eager
From Tensorflow Graph to Tensorflow EagerGuy Hadash
 
Machine Learning and Go. Go!
Machine Learning and Go. Go!Machine Learning and Go. Go!
Machine Learning and Go. Go!Diana Ortega
 
Hello- below is my code for an AlexNet assignment- If someone could lo.pdf
Hello- below is my code for an AlexNet assignment- If someone could lo.pdfHello- below is my code for an AlexNet assignment- If someone could lo.pdf
Hello- below is my code for an AlexNet assignment- If someone could lo.pdfa2zmobiles
 

Similar to 프알못의 Keras 사용기 (20)

TensorFlow Lite (r1.5) & Android 8.1 Neural Network API
TensorFlow Lite (r1.5) & Android 8.1 Neural Network APITensorFlow Lite (r1.5) & Android 8.1 Neural Network API
TensorFlow Lite (r1.5) & Android 8.1 Neural Network API
 
Keras and TensorFlow
Keras and TensorFlowKeras and TensorFlow
Keras and TensorFlow
 
Machine Learning - Introduction to Tensorflow
Machine Learning - Introduction to TensorflowMachine Learning - Introduction to Tensorflow
Machine Learning - Introduction to Tensorflow
 
Introduction to TensorFlow 2.0
Introduction to TensorFlow 2.0Introduction to TensorFlow 2.0
Introduction to TensorFlow 2.0
 
Deep Learning and TensorFlow
Deep Learning and TensorFlowDeep Learning and TensorFlow
Deep Learning and TensorFlow
 
Power ai tensorflowworkloadtutorial-20171117
Power ai tensorflowworkloadtutorial-20171117Power ai tensorflowworkloadtutorial-20171117
Power ai tensorflowworkloadtutorial-20171117
 
Neural networks using tensor flow in amazon deep learning server
Neural networks using tensor flow in amazon deep learning serverNeural networks using tensor flow in amazon deep learning server
Neural networks using tensor flow in amazon deep learning server
 
maXbox starter65 machinelearning3
maXbox starter65 machinelearning3maXbox starter65 machinelearning3
maXbox starter65 machinelearning3
 
Need an detailed analysis of what this code-model is doing- Thanks #St.pdf
Need an detailed analysis of what this code-model is doing- Thanks #St.pdfNeed an detailed analysis of what this code-model is doing- Thanks #St.pdf
Need an detailed analysis of what this code-model is doing- Thanks #St.pdf
 
Machine learning with py torch
Machine learning with py torchMachine learning with py torch
Machine learning with py torch
 
C sharp chap6
C sharp chap6C sharp chap6
C sharp chap6
 
Introduction To TensorFlow | Deep Learning with TensorFlow | TensorFlow For B...
Introduction To TensorFlow | Deep Learning with TensorFlow | TensorFlow For B...Introduction To TensorFlow | Deep Learning with TensorFlow | TensorFlow For B...
Introduction To TensorFlow | Deep Learning with TensorFlow | TensorFlow For B...
 
GANS Project for Image idetification.pdf
GANS Project for Image idetification.pdfGANS Project for Image idetification.pdf
GANS Project for Image idetification.pdf
 
Image classification using cnn
Image classification using cnnImage classification using cnn
Image classification using cnn
 
Session 07 text data.pptx
Session 07 text data.pptxSession 07 text data.pptx
Session 07 text data.pptx
 
Session 07 text data.pptx
Session 07 text data.pptxSession 07 text data.pptx
Session 07 text data.pptx
 
Session 07 text data.pptx
Session 07 text data.pptxSession 07 text data.pptx
Session 07 text data.pptx
 
From Tensorflow Graph to Tensorflow Eager
From Tensorflow Graph to Tensorflow EagerFrom Tensorflow Graph to Tensorflow Eager
From Tensorflow Graph to Tensorflow Eager
 
Machine Learning and Go. Go!
Machine Learning and Go. Go!Machine Learning and Go. Go!
Machine Learning and Go. Go!
 
Hello- below is my code for an AlexNet assignment- If someone could lo.pdf
Hello- below is my code for an AlexNet assignment- If someone could lo.pdfHello- below is my code for an AlexNet assignment- If someone could lo.pdf
Hello- below is my code for an AlexNet assignment- If someone could lo.pdf
 

More from Mijeong Jeon

Azure_CogSearch_OAI.pdf
Azure_CogSearch_OAI.pdfAzure_CogSearch_OAI.pdf
Azure_CogSearch_OAI.pdfMijeong Jeon
 
Performance Comparing : ONNX, TF, PyTorch
Performance Comparing : ONNX, TF, PyTorchPerformance Comparing : ONNX, TF, PyTorch
Performance Comparing : ONNX, TF, PyTorchMijeong Jeon
 
let us: Go! 2019 Summer 앱 수익으로 월세내기
let us: Go! 2019 Summer 앱 수익으로 월세내기let us: Go! 2019 Summer 앱 수익으로 월세내기
let us: Go! 2019 Summer 앱 수익으로 월세내기Mijeong Jeon
 
Azure AutoML 함께 실습하기
Azure AutoML 함께 실습하기Azure AutoML 함께 실습하기
Azure AutoML 함께 실습하기Mijeong Jeon
 
iOS 모바일에서 한글 손글씨 인식하기(with Keras)
iOS 모바일에서 한글 손글씨 인식하기(with Keras) iOS 모바일에서 한글 손글씨 인식하기(with Keras)
iOS 모바일에서 한글 손글씨 인식하기(with Keras) Mijeong Jeon
 
내 손 위의 딥러닝_iOS에 딥러닝 심기
내 손 위의 딥러닝_iOS에 딥러닝 심기 내 손 위의 딥러닝_iOS에 딥러닝 심기
내 손 위의 딥러닝_iOS에 딥러닝 심기 Mijeong Jeon
 
프알못의 Realm 사용기
프알못의 Realm 사용기프알못의 Realm 사용기
프알못의 Realm 사용기Mijeong Jeon
 

More from Mijeong Jeon (8)

Azure_CogSearch_OAI.pdf
Azure_CogSearch_OAI.pdfAzure_CogSearch_OAI.pdf
Azure_CogSearch_OAI.pdf
 
Performance Comparing : ONNX, TF, PyTorch
Performance Comparing : ONNX, TF, PyTorchPerformance Comparing : ONNX, TF, PyTorch
Performance Comparing : ONNX, TF, PyTorch
 
let us: Go! 2019 Summer 앱 수익으로 월세내기
let us: Go! 2019 Summer 앱 수익으로 월세내기let us: Go! 2019 Summer 앱 수익으로 월세내기
let us: Go! 2019 Summer 앱 수익으로 월세내기
 
Azure AutoML 함께 실습하기
Azure AutoML 함께 실습하기Azure AutoML 함께 실습하기
Azure AutoML 함께 실습하기
 
iOS 모바일에서 한글 손글씨 인식하기(with Keras)
iOS 모바일에서 한글 손글씨 인식하기(with Keras) iOS 모바일에서 한글 손글씨 인식하기(with Keras)
iOS 모바일에서 한글 손글씨 인식하기(with Keras)
 
180825 azure ai
180825 azure ai180825 azure ai
180825 azure ai
 
내 손 위의 딥러닝_iOS에 딥러닝 심기
내 손 위의 딥러닝_iOS에 딥러닝 심기 내 손 위의 딥러닝_iOS에 딥러닝 심기
내 손 위의 딥러닝_iOS에 딥러닝 심기
 
프알못의 Realm 사용기
프알못의 Realm 사용기프알못의 Realm 사용기
프알못의 Realm 사용기
 

Recently uploaded

SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 

Recently uploaded (20)

SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 

프알못의 Keras 사용기

  • 1. LET US: GO 2017 FALL
  • 2. WHY
  • 3.
  • 4. You have just found Keras
  • 5.
  • 6. • Francois Chollet • API • TesnsorFlow, Theano, CNTK
  • 7. ############################ ###DNN in TensorFlow Only### ############################ import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data ###1. Load data set, and split it if necessary mnist = input_data.read_data_sets("MNIST_data/") ###2. we create a holder, a container to place the computation activities in tensorflow ###identifying format and tensor's r/c, null means any kind VISIBLE_NODES = 784 HIDDEN_NODES = 400 x = tf.placeholder("float", shape=[None, VISIBLE_NODES]) y = tf.placeholder("float", shape=[None, 10]) ###3. We identify weights and biases with tensor shape, start with 0 weights = tf.Variable(tf.random_normal((VISIBLE_NODES, HIDDEN_NODES), mean=0.0, stddev=1. / VISIBLE_NODES)) hidden_bias = tf.Variable(tf.zeros([HIDDEN_NODES])) visible_bias = tf.Variable(tf.zeros([VISIBLE_NODES])) ###4. set up the sigmoid model and multiply x and W with matmul function, building the ###hidden layer and reconstruction layer hidden_activation = tf.nn.sigmoid(tf.matmul(x, weights) + hidden_bias) visible_reconstruction = tf.nn.sigmoid(tf.matmul(hidden_activation, tf.transpose(weights)) + visible_bias) final_hidden_activation = tf.nn.sigmoid(tf.matmul(visible_reconstruction, weights) + hidden_bias) ###5. This process can be understood as being two phases of learning ###positive and negative or, more poetically, waking and sleeping positive_phase = tf.matmul(tf.transpose(x), hidden_activation) negative_phase = tf.matmul(tf.transpose(visible_reconstruction), final_hidden_activation) LEARNING_RATE = 0.01 weight_update = weights.assign_add(LEARNING_RATE * (positive_phase - negative_phase)) visible_bias_update = visible_bias.assign_add(LEARNING_RATE * tf.reduce_mean(x - visible_reconstruction, 0)) hidden_bias_update = hidden_bias.assign_add(LEARNING_RATE * tf.reduce_mean(hidden_activation - final_hidden_activation, 0)) ###6. Now we create the operations for scaling the hidden and visible biases, with loss ###function feedback train_op = tf.group(weight_update, visible_bias_update, hidden_bias_update) loss_op = tf.reduce_sum(tf.square(x - visible_reconstruction)) ###7. We start the session session = tf.Session() session.run(tf.global_variables_initializer()) current_epochs = 0 ###8.Run the session for i in range(20): total_loss = 0 while mnist.train.epochs_completed == current_epochs: batch_inputs, batch_labels = mnist.train.next_batch(100) _, reconstruction_loss = session.run([train_op, loss_op], feed_dict={input_placeholder: batch_inputs}) total_loss += reconstruction_loss print("epochs %s loss %s" % (current_epochs, reconstruction_loss)) current_epochs = mnist.train.epochs_completed ############################## ###DNN in TensorFlow KeRas ### ############################## ###1. Load Data and Splot Data from keras.datasets import mnist from keras.models import Sequential from keras.layers.core import Dense, Activation from keras.utils import np_utils (X_train, Y_train), (X_test, Y_test) = mnist.load_data() ###2.Preprocess X_train = X_train.reshape(60000, 784) X_test = X_test.reshape(10000, 784) X_train = X_train.astype('float32') X_test = X_test.astype('float32') X_train /= 255 X_test /= 255 classes = 10 Y_train = np_utils.to_categorical(Y_train, classes) Y_test = np_utils.to_categorical(Y_test, classes) ###3. Set up parameters input_size = 784 batch_size = 100 hidden_neurons = 400 epochs = 30 ###4.Build the model model = Sequential() model.add(Dense(hidden_neurons, input_dim=input_size)) model.add(Activation('relu')) model.add(Dense(classes, input_dim=hidden_neurons)) model.add(Activation('softmax')) model.compile(loss='categorical_crossentropy', metrics=['accuracy'], optimizer='adadelta') model.fit(X_train, Y_train, batch_size=batch_size, epochs=epochs, verbose=1) ###5.Test score = model.evaluate(X_test, Y_test, verbose=1) print('n''Test accuracy:', score[1]) #Test accuracy: 0.983 VS Keras TensorFlow https://charleshsliao.wordpress.com/2017/06/19/dnn-and-cnn-of-tensorflowkeras-with-mnist-data/
  • 8. : https://tykimos.github.io/ 𝒀 = 𝑤 × 𝑿 + 𝑏 𝒀 𝑤 𝑿 𝑏 𝒀 𝑤 𝑿 𝑏 𝑤 𝑏 !
  • 9. 𝒀 = 𝑤 × 𝑿 + 𝑏 𝑤 𝑏 ! : https://tykimos.github.io/
  • 10.
  • 11.
  • 12.
  • 13. from keras.preprocessing.image import ImageDataGenerator # 1. train_datagen = ImageDataGenerator(rescale=1./255) train_generator = train_datagen.flow_from_directory( ‘handwriting_shape/train', // target_size=(28, 28), // batch_size=10, // class_mode=‘categorical') //
  • 14. from keras.models import Sequential from keras.layers import Dense, Flatten from keras.layers.convolutional import Conv2D, MaxPooling2D # 2. model = Sequential() // model.add(Conv2D(32, // ?? kernel_size=(3, 3), // ?? activation=‘relu’, // input_shape=(28, 28, 3)) // ( , ) model.add(Conv2D(64, (3, 3), activation=‘relu')) // model.add(MaxPooling2D(pool_size=(2, 2))) // ?? model.add(Flatten()) // -> ?? model.add(Dense(128, activation=‘relu')) model.add(Dense(4, activation='softmax'))
  • 19. # 2. from keras.models import Sequential from keras.layers import Dense, Flatten from keras.layers.convolutional import Conv2D, MaxPooling2D model = Sequential() // model.add(Conv2D(32, // kernel_size=(3, 3), // activation=‘relu’, // input_shape=(28, 28, 3)) // ( , ) model.add(Conv2D(64, (3, 3), activation=‘relu')) // model.add(MaxPooling2D(pool_size=(2, 2))) // model.add(Flatten()) // -> model.add(Dense(128, activation=‘relu’)) // model.add(Dense(4, activation=‘softmax')) //
  • 20. # 3. model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=[‘accuracy']) // # 4. model.fit_generator( train_generator, // steps_per_epoch=30, // / (=300/10) epochs=150) // # 5. score=model.evaluate_generator(test_generator, steps=3)
  • 21. # 6. coreml import coremltools coreml_model = coremltools.converters.keras.convert(model, input_names=‘image’, // = output_names=‘class', image_input_names = ‘image', class_labels = ['circle', 'rectangle', ‘triangle'], // is_bgr=True) coreml_model.save(‘shape_detect_with_keras.mlmodel') //
  • 22. # 7. coreml import CoreML let model = shape_detect_with_keras() guard let output: shape_detect_with_kerasOutput = try? model.prediction(image: image) else { return }
  • 23. You have just found Keras
  • 24.
  • 25.
  • 26.
  • 27.