Визуализация прогресса обучения в Керасе с помощью Hualos - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь следовать инструкциям здесь https://github.com/fchollet/hualos визуализировать ход обучения в Керасе. На вышеупомянутой странице я читаю:

Hualos - проект полной визуализации Keras

На данный момент это простая демонстрация, где сервер Flask предоставляет API для публиковать и потреблять события в форме объектов JSON. Керас обратный вызов RemoteMonitor может публиковать события на сервере, а Целевая страница Hualos прослушивает сервер и отображает входящие данные на графике c3.js.

Пример:

start the server: python api.py
load the landing page: http://localhost:9000/
launch a Keras experiment with the RemoteMonitor callback:
from keras import callbacks remote =
> callbacks.RemoteMonitor(root='http://localhost:9000')
> 
> model.fit(X_train, Y_train, batch_size=batch_size, nb_epoch=nb_epoch,
> validation_data=(X_test, Y_test), callbacks=[remote])

Более того:

Зависимость:

Python:
    Flask
    gevent

JS (included in the repo):
    d3.js
    c3.js

Я успешно установил Flask и gevent.

Мой код является следующим, используя данные теста mnist для краткости, которые я скачал отсюда в виде csv-файла: https://pjreddie.com/projects/mnist-in-csv/

from keras import callbacks
remote = callbacks.RemoteMonitor(root='http://localhost:9000')

X = mnist.iloc[:, 1:].values
y = to_categorical(mnist.iloc[:, 0])

X =  X.astype('float32')
y =  y.astype('float32')

X /= 255  # ATTENTION!  Normalization is critical!!!

n_cols = X.shape[1]

# Create the model: model
model = Sequential()

# Add the first hidden layer
model.add(Dense(50, activation = 'relu', input_shape = (784,)))

# Add the second hidden layer
model.add(Dense(50, activation = 'relu'))

# Add the output layer
model.add(Dense(10, activation = 'softmax'))

# Compile the model
model.compile(optimizer = 'adam', loss = 'categorical_crossentropy', metrics = ['accuracy'])

# Fit the model
model.fit(X, y, validation_split = 0.3, epochs=3, callbacks = [remote])

Что приводит к следующему выводу:

Train on 7000 samples, validate on 3000 samples
Epoch 1/3
7000/7000 [==============================] - 1s 100us/step - loss: 0.7812 - acc: 0.7717 - val_loss: 0.3036 - val_acc: 0.9153
Epoch 2/3
3296/7000 [=============>................] - ETA: 0s - loss: 0.3139 - acc: 0.9072

C:\ProgramData\Anaconda3\lib\site-packages\keras\callbacks.py:606: UserWarning: Warning: could not reach RemoteMonitor root server at http://localhost:9000
  'root server at ' + str(self.root))

7000/7000 [==============================] - 0s 55us/step - loss: 0.3051 - acc: 0.9111 - val_loss: 0.2616 - val_acc: 0.9213
Epoch 3/3
2400/7000 [=========>....................] - ETA: 0s - loss: 0.2613 - acc: 0.9237

C:\ProgramData\Anaconda3\lib\site-packages\keras\callbacks.py:606: UserWarning: Warning: could not reach RemoteMonitor root server at http://localhost:9000
  'root server at ' + str(self.root))

7000/7000 [==============================] - 0s 63us/step - loss: 0.2397 - acc: 0.9284 - val_loss: 0.2350 - val_acc: 0.9320

C:\ProgramData\Anaconda3\lib\site-packages\keras\callbacks.py:606: UserWarning: Warning: could not reach RemoteMonitor root server at http://localhost:9000
  'root server at ' + str(self.root))

На самом деле, когда я пытаюсь запустить команду:

python api.py

Я получаю исключение:

 (base) D:\Mint_ns>python api.py
Traceback (most recent call last):
  File "api.py", line 10, in <module>
    from pattern.server import App
ModuleNotFoundError: No module named 'pattern'

(base) D:\Mint_ns>conda install -c asmeurer pattern
Solving environment: failed

UnsatisfiableError: The following specifications were found to be in conflict:
  - pattern
  - tensorflow
Use "conda info <package>" to see the dependencies for each package.

Это довольно странно, потому что весь смысл в том, чтобы использовать Hualos для работы с Keras, который работает с TensorFlow в качестве бэкэнда.

Как я могу сделать эту работу?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...