Повышение точности валидации, но также увеличивается

Просто подумал, что я бы добавил к этому старому потоку, суммируя свойства параметров List, созданных с помощью типов или подстановочных знаков ....

Когда у метода есть параметр / результат, который является List, использование типа экземпляра или подстановочных знаков определяет

  1. Типы списка, которые могут быть переданы методу в качестве аргумента
  2. Типы списка, которые могут быть заполнены из результата метода
  3. Типы элементов, которые могут быть записаны в список в методе
  4. Типы, которые могут быть заполнены при чтении элементов из списка в методе

Param / Тип возврата: List< Foo>

  1. Типы списка, которые могут быть переданы методу в качестве аргумента: List< Foo>
  2. Типы списка, которые могут быть заполнены из Результат метода: List< Foo> List< ? super Foo> List< ? super SubFoo> List< ? extends Foo> List< ? extends SuperFoo>
  3. Типы элементов, которые могут быть записаны в список в пределах метода: Foo & amp; подтипы
  4. Типы, которые могут быть заполнены при чтении элементов из списка в методе: Foo & amp; супертипы (до Object)

Параметр / Тип возврата: List< ? extends Foo>

  1. Типы списка, которые могут быть переданы методу в качестве аргумента : List< Foo> List< Subfoo> List< SubSubFoo> List< ? extends Foo> List< ? extends SubFoo> List< ? extends SubSubFoo>
  2. Типы списка, которые могут быть заполнены из результата метода: List< ? extends Foo> List< ? extends SuperFoo> List< ? extends SuperSuperFoo>
  3. Типы элементов, которые могут быть записаны для перечисления в методе: Нет! Невозможно добавить.
  4. Типы, которые могут быть заполнены при чтении элементов из списка в методе: Foo & amp; супертипы (до Object)

Параметр / Тип возврата: List<? super Foo>

  1. Типы списка, которые могут быть переданы методу в качестве аргумента : List< Foo> List< Superfoo> List< SuperSuperFoo> List< ? super Foo> List< ? super SuperFoo> List< ? super SuperSuperFoo>
  2. Типы списка, которые могут быть заполнены из результата метода: List< ? super Foo> List< ? super SubFoo> List< ? super SubSubFoo>
  3. Типы элементов, которые могут быть записаны для перечисления в рамках метода: Foo & amp; супертипы
  4. Типы, которые могут быть заполнены при чтении элементов из списка в методе: Foo & amp; супертипы (до Object)

Интерпретация / комментарий

  • потребности внешних вызывающих абонентов приводят дизайн декларации метода, т.е. публичный API (обычно первичное рассмотрение)
  • потребности в логике внутреннего логического устройства приводят любые дополнительные решения к фактическим типам данных, объявленным и построенным внутренне (обычно вторичное рассмотрение)
  • используют List<Foo>, если код вызывающего абонента всегда сфокусирован при манипулировании классом Foo, поскольку он максимизирует гибкость как для чтения, так и для записи
  • , используйте List<? extends UpperMostFoo>, если может быть много разных типов абонентов, ориентированных на управление другим классом (не всегда Foo), и есть один самый верхний класс в иерархии типов Foo, и если этот метод предназначен для внутренней записи в список, а чтение списка вызывающих абонентов читается. Здесь метод может внутренне использовать List< UpperMostFoo> и добавлять к нему элементы, прежде чем возвращать List< ? extends UpperMostFoo>
  • , если может быть много разных типов вызывающих, сфокусированных на управлении другим классом (не всегда Foo), и если чтение и запись в список требуется, и в иерархии типов Foo есть один самый низкий класс, тогда имеет смысл использовать List< ? super LowerMostFoo>
0
задан Upendar Gareri 13 July 2018 в 09:21
поделиться

1 ответ

Я думаю, что это случай переобучения, как отмечали предыдущие комментарии. Переполнение может быть результатом большого отклонения в наборе данных. Когда вы обучали CNN, он показал хорошее соотношение к уменьшению ошибки обучения, создавая более сложную модель. Более сложные модели производят переобучение, и это можно заметить, когда ошибка проверки имеет тенденцию к увеличению.

Оптимизатор Адама заботится о скорости обучения, экспоненциальном распаде и вообще оптимизации модели, но он не будет предпринимать никаких действий против переобучения. Если вы хотите уменьшить его (переобучение), вам нужно будет добавить метод регуляризации, который будет наказывать большие значения весов в модели.

Подробнее об этом можно прочитать в книге углубленного изучения: http://www.deeplearningbook.org/contents/regularization.html

0
ответ дан Bitzel 17 August 2018 в 13:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: