Мой вопрос может быть актуален для всех, кто пытается следовать онлайн-книге Майкла Нильсена по нейронным сетям и глубокому обучению:
http://neuralnetworksanddeeplearning.com/
, следуя коду для загрузки и обучения в MNISTданные, написанные от руки.
Я скачал файлы Python 3, доступные здесь:
https://github.com/MichalDanielDobrzanski/DeepLearningPython35
После книги я загрузил данные MNIST и разделил их на тренинге/ валидация / тестирование наборов данных, создание сети с 30 скрытыми нейронами и использование стохастического градиентного спуска (SGD) для изучения обучающих данных (выполненных в записной книжке Jupyter):
import mnist_loader
training_data, validation_data, test_data = mnist_loader.load_data_wrapper()
import network
net = network.Network([784, 30, 10])
net.SGD(training_data, 30, 10, 3.0, test_data=test_data)
Потребовалось некоторое времячтобы запустить каждую эпоху, но результат был разумным:
Epoch 0 : 9101 / 10000
Epoch 1 : 9276 / 10000
...
Epoch 28 : 9480 / 10000
Epoch 29 : 9515 / 10000
Снова, следуя книге, я увеличил количество скрытых нейронов до 100 и выполнил следующее:
net = network.Network([784, 100, 10])
net.SGD(training_data, 30, 10, 3.0, test_data=test_data)
Но этоВремя получило следующий результат:
Epoch 0 complete
Epoch 1 complete
...
Epoch 28 complete
Epoch 29 complete
, который работал более или менее мгновенно.
Я не понимаю, почему он не работал так, как раньше (медленно, с печатью результатов тестов каждой эпохи).
Я попытался повторно запустить предыдущую строку (с 30 нейронами) и получил тот же странный результат (а не тот вид вывода, который я первоначально видел).
Поскольку я новичок,Я задавался вопросом, есть ли что-то особенное в том, как хранятся значения, что ему не нравится переопределение net.Поэтому я попытался создать новую переменную:
net2 = network.Network([784, 100, 10])
net2.SGD(training_data, 30, 10, 3.0, test_data=test_data)
Но получил тот же результат.
Я не получаю сообщение об ошибке.Так что еще сложнее отлаживать, так как я даже понятия не имею, где он падает, и какие ключевые слова искать, если кто-то уже опубликовал такой вопрос в другом месте!
И так какЯ только что скопировал чей-то буквальный код в то, что, по сути, является началом книги, довольно тревожно.
Я был бы очень признателен за понимание того, почему я не получаю того, чего ожидаю.
Спасибо!