Просто подумал, что я бы добавил к этому старому потоку, суммируя свойства параметров List, созданных с помощью типов или подстановочных знаков ....
Когда у метода есть параметр / результат, который является List, использование типа экземпляра или подстановочных знаков определяет
List< Foo>
List< Foo>
List< Foo>
List< ? super Foo>
List< ? super SubFoo>
List< ? extends Foo>
List< ? extends SuperFoo>
Foo
& amp; подтипы Foo
& amp; супертипы (до Object
) List< ? extends Foo>
List< Foo>
List< Subfoo>
List< SubSubFoo>
List< ? extends Foo>
List< ? extends SubFoo>
List< ? extends SubSubFoo>
List< ? extends Foo>
List< ? extends SuperFoo>
List< ? extends SuperSuperFoo>
Foo
& amp; супертипы (до Object
) List<? super Foo>
List< Foo>
List< Superfoo>
List< SuperSuperFoo>
List< ? super Foo>
List< ? super SuperFoo>
List< ? super SuperSuperFoo>
List< ? super Foo>
List< ? super SubFoo>
List< ? super SubSubFoo>
Foo
& amp; супертипы Foo
& amp; супертипы (до Object
) List<Foo>
, если код вызывающего абонента всегда сфокусирован при манипулировании классом Foo, поскольку он максимизирует гибкость как для чтения, так и для записи List<? extends UpperMostFoo>
, если может быть много разных типов абонентов, ориентированных на управление другим классом (не всегда Foo), и есть один самый верхний класс в иерархии типов Foo, и если этот метод предназначен для внутренней записи в список, а чтение списка вызывающих абонентов читается. Здесь метод может внутренне использовать List< UpperMostFoo>
и добавлять к нему элементы, прежде чем возвращать List< ? extends UpperMostFoo>
List< ? super LowerMostFoo>
Я думаю, что это случай переобучения, как отмечали предыдущие комментарии. Переполнение может быть результатом большого отклонения в наборе данных. Когда вы обучали CNN, он показал хорошее соотношение к уменьшению ошибки обучения, создавая более сложную модель. Более сложные модели производят переобучение, и это можно заметить, когда ошибка проверки имеет тенденцию к увеличению.
Оптимизатор Адама заботится о скорости обучения, экспоненциальном распаде и вообще оптимизации модели, но он не будет предпринимать никаких действий против переобучения. Если вы хотите уменьшить его (переобучение), вам нужно будет добавить метод регуляризации, который будет наказывать большие значения весов в модели.
Подробнее об этом можно прочитать в книге углубленного изучения: http://www.deeplearningbook.org/contents/regularization.html