Listview, не полностью обновляющий на привязке данных () после обратной передачи

Поскольку у вас есть четыре класса и активация softmax на последнем слое, мне кажется очень маловероятным, что ваш выбор class_mode='binary' для flow_from_directory() и loss='sparse_categorical_crossentropy' для classifier.compile() правильный. Сгенерированные таким образом метки не будут иметь смысла.

class_mode='binary' будет генерировать метки в форме [0,1,1,0,1,1,...], которые имеют смысл только для прогнозирования да / нет (следовательно, «двоичный»), в то время как loss='sparse_categorical_crossentropy' ожидает метки в форме [1,3,2,4,3,2,1,2,...] (одно целое число для каждого класса ). [1 122]

Попробуйте вместо class_mode='categorical' и loss='categorical_crossentropy'. Это сгенерирует ярлыки с горячим кодированием, например

[[0,0,1,0],
 [0,1,0,0],
 [0,0,0,1],
 ...      ]

, что именно то, что loss='categorical_crossentropy' ожидает получить. Также выбор activation='softmax' в последнем слое идеально подходит для этого, так как он гарантирует, что четыре значения в последнем слое всегда суммируют ap с 1.

Относительно ваших вопросов:

  1. Да, вы, скорее всего, столкнетесь с перегрузкой из-за неправильных меток (они не имеют смысла). Ваша модель в основном изучает случайные метки (данные обучения) и, следовательно, не работает хорошо с другими случайными метками (данные проверки).
  2. Вам следует остановиться, когда val_acc перестанет расти. Да, в вашем случае эта точка достигается уже после двух эпох. Но для хороших моделей это обычная практика. У вашего понимания есть недостаток: отличные результаты на тренировочных данных - не цель! Помните, в конце концов, вы хотите, чтобы ваша модель предсказывала изображения, которых она никогда не видела прежде, поэтому только данные проверки говорят вам правду. (На самом деле, еще лучше иметь еще один тестовый набор данных, который никогда не затрагивался во время обучения, и сравнить его с этим в самом конце после вызова fit или fit_generator.
  3. . только ваши данные не являются (как объяснено выше). Однако, если после моего предложенного исправления это все еще плохо работает, вам нужно будет поэкспериментировать с большим количеством объектов в ваших сверточных слоях, а также с добавлением еще большего количества сверточных слоев. Средние слои со скоростью от 0,2 до 0,5 - это всегда хороший способ избежать наложения. Вам нужно будет поэкспериментировать с этими настройками.
5
задан patjbs 8 May 2009 в 18:17
поделиться

7 ответов

из интереса, к какому месту на странице вы привязываете данные? Page_Load?

Попробуйте на OnPreRender - может помочь.

6
ответ дан 13 December 2019 в 22:16
поделиться

Похоже, что ViewState запускает и заново заполняет данные. В любом случае, если вы в любом случае выполняете привязку данных в каждой обратной передаче, вам, вероятно, следует установить для параметра EnableViewState вашего ListView значение false, чтобы уменьшить размер страницы.

2
ответ дан 13 December 2019 в 22:16
поделиться

Возможно, ваш QueueListView по какой-то причине повторно привязан.

Попробуйте сбросить значение DataSource после DataBind (), чтобы увидеть, что произойдет

QueueListView.DataBind();
QueueListView.DataSource = null;
0
ответ дан 13 December 2019 в 22:16
поделиться

Есть ли вероятность, что это проблема кеширования? Я столкнулся с аналогичной проблемой, используя просмотр списка с источником XMLDatasource. Я попытался отключить все состояние просмотра. Я бы связал список в коде позади и использовал XPath, чтобы записать все это на экран на моей странице aspx. Это использовалось при поиске ... в следующий раз, когда я провел поиск, никакой новой информации не обнаружилось. Причина в том, что для источника XMLDatasource по умолчанию включено кэширование. В моем случае я каждый раз попадал в БД, и мне не нужно было кэшировать ее. Я отключил кеширование источника данных, и все мои проблемы были исправлены.

Я упоминаю об этом только потому, что ошибка, которая у меня была, звучит идентично вашей. Я не вижу, как вы извлекаете книгу в привязке данных - и, судя по всему, вы не используете источник данных XML ... но я подумал, что этот комментарий может что-то для вас вызвать. Удачи .... хотя, похоже, вы уже двинулись дальше: -).

0
ответ дан 13 December 2019 в 22:16
поделиться

Является ли флажок ReadOnly = true или Enabled = false?

У меня возникли проблемы с элементами управления, у которых одно из этих свойств, как указано выше, не обновлялось, как бы я ни пытался управлять этим элементом управления в коде позади. Я бы подумал, что отключение состояния просмотра также обойдет эту маленькую «функцию» ASP.NET, но попробовать стоит.

Кроме того, если элементы сортируются с помощью кода на стороне клиента, сохраняется ли этот порядок при обратной передаче? Я не думаю, что вы можете изменить объект CLR в сеансе с помощью javascript.

0
ответ дан 13 December 2019 в 22:16
поделиться

Не уверен, поможет ли это, замените <% # Eval ("ProjectAbbrev")%> на Hyperlink.Text, назначенный в методе OnQueueRepeater_ItemDataBound, и посмотрите, все ли строки заполнены правильно.

Вероятно, это не решит вашу проблему, но будет интересно узнать результат.

0
ответ дан 13 December 2019 в 22:16
поделиться

Я думаю, это связано с порядком, когда различные события запускаются в течение жизненного цикла страницы. См. Обзор жизненного цикла страницы ASP.NET . Вы должны выполнить привязку данных в Page_OnPreRender, чтобы убедиться, что повторное заполнение выполняется после управляющих событий (которые вызовут обновление данных) на странице.

2
ответ дан 13 December 2019 в 22:16
поделиться
Другие вопросы по тегам:

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