2017-06-25 17 views
5

मैं एक Jupyter नोटबुक के अंदर चल रहा है निम्नलिखित कोड है:Keras + TensorFlow रीयलटाइम प्रशिक्षण चार्ट

# Visualize training history 
from keras.models import Sequential 
from keras.layers import Dense 
import matplotlib.pyplot as plt 
import numpy 
# fix random seed for reproducibility 
seed = 7 
numpy.random.seed(seed) 
# load pima indians dataset 
dataset = numpy.loadtxt("pima-indians-diabetes.csv", delimiter=",") 
# split into input (X) and output (Y) variables 
X = dataset[:,0:8] 
Y = dataset[:,8] 
# create model 
model = Sequential() 
model.add(Dense(12, input_dim=8, kernel_initializer='uniform', activation='relu')) 
model.add(Dense(8, kernel_initializer='uniform', activation='relu')) 
model.add(Dense(1, kernel_initializer='uniform', activation='sigmoid')) 
# Compile model 
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) 
# Fit the model 
history = model.fit(X, Y, validation_split=0.33, epochs=150, batch_size=10, verbose=0) 
# list all data in history 
print(history.history.keys()) 
# summarize history for accuracy 
plt.plot(history.history['acc']) 
plt.plot(history.history['val_acc']) 
plt.title('model accuracy') 
plt.ylabel('accuracy') 
plt.xlabel('epoch') 
plt.legend(['train', 'test'], loc='upper left') 
plt.show() 
# summarize history for loss 
plt.plot(history.history['loss']) 
plt.plot(history.history['val_loss']) 
plt.title('model loss') 
plt.ylabel('loss') 
plt.xlabel('epoch') 
plt.legend(['train', 'test'], loc='upper left') 
plt.show() 

कोड अवधियों को इतिहास एकत्र करता है, तो प्रगति इतिहास प्रदर्शित करता है।


प्रश्न: मैं चार्ट परिवर्तन कैसे कर सकते हैं, जबकि प्रशिक्षण तो मैं वास्तविक समय में परिवर्तन देख सकते हैं?

उत्तर

4

केरा callback for TensorBoard के साथ आता है।

आप आसानी से इस व्यवहार को अपने मॉडल में जोड़ सकते हैं और फिर लॉगिंग डेटा के शीर्ष पर बस टेंसरबोर्ड चला सकते हैं।

callbacks = [TensorBoard(log_dir='./logs')] 
result = model.fit(X, Y, ..., callbacks=callbacks) 

और फिर अपने खोल पर:

tensorboard --logdir=/logs 

आप अपनी नोटबुक में यह की जरूरत है, तो आप भी अपनी खुद की कॉलबैक लिख सकते हैं मीट्रिक प्राप्त करें, जबकि प्रशिक्षण:

class LogCallback(Callback): 

    def on_epoch_end(self, epoch, logs=None): 
     print(logs["train_accuracy"]) 

यह होगा वर्तमान युग के अंत में प्रशिक्षण सटीकता प्राप्त करें और इसे प्रिंट करें। There's some good documentation around it on the official keras site.

संबंधित मुद्दे