Для ответа на такой вопрос не хватает логов обучения. Причем не только по трейну, но и по валидации (судя по коду, валидации сейчас вообще нет).
Гипотезы:
- лучше использовать хотя бы 2-3 сверточных слоя со свертками 3*3, чем один 8*8, т.к. это обеспечит больще нелинейности;
- learning rate = .25 может быть слишком большим, так что в итоге сеть начинает осциллировать вокруг локального минимума.