Textsum - Неверные результаты декодирования по сравнению с ref-файлом

Эта проблема возникает при обучении моего собственного набора данных, который был преобразован в двоичный с помощью data_convert_example.py. После недели обучения я получаю результаты декодирования, которые не имеют смысла при сравнении файлов декодирования и ref.

Если кто-то добился успеха и получил результаты, аналогичные тем, что опубликованы в ридми Textsum, используя свои собственные данные, я хотел бы знать, что сработало для вас... среда, сборка tf, количество статей.

В настоящее время мне не повезло с 0.11, но я получил некоторые результаты с 0.9, однако результаты декодирования аналогичны показанным ниже, и я понятия не имею, откуда они вообще берутся.

В настоящее время я использую Ubuntu 16.04, TF 0.9, CUDA 7.5 и CuDnn 4. Я пробовал TF 0.11, но имел дело с другими проблемами, поэтому вернулся к 0.9. Кажется, что результаты декодирования генерируются из действительных статей, но индексы эталонного файла и файла декодирования НЕ имеют корреляции.

Если кто-то может предоставить любую помощь или направление, было бы очень признательно. В противном случае, если я что-нибудь выясню, я отпишусь здесь.

Несколько заключительных вопросов. Относительно упомянутого файла vocab. Нужно ли вообще сортировать по частоте слов? Я никогда не выполнял ничего подобного при его создании и просто не был уверен, что это тоже что-то испортит.

Наконец, при создании данных я исходил из того, что статьи с обучающими данными должны быть разбиты на более мелкие партии. Я разделил статьи на несколько файлов по 100 статей в каждом. Затем они были названы data-0, data-1 и т. д. Я предполагаю, что это было правильное предположение с моей стороны? Я также сохранил весь словарный запас в одном файле, который, похоже, не вызывал никаких ошибок.

Верны ли и приведенные выше предположения?

Ниже приведены некоторые результаты ref и decode, которые, как вы можете видеть, довольно странные и, похоже, не имеют корреляции.

РАСШИФРОВАТЬ:

output=Wild Boy Goes About How I Can't Be Really Go For Love 
output=State Department defends the campaign of Iran
output=John Deere sails profit - Business Insider  
output=to roll for the Perseid meteor shower
output=Man in New York City in Germany

ССЫЛКА:

output=Battle Chasers: Nightwar Combines Joe Mad's Stellar Art With Solid RPG Gameplay
output=Obama Meets a Goal That Could Literally Destroy America
output=WOW! 10 stunning photos of presidents daughter Zahra Buhari   
output=Koko the gorilla jams out on bass with Flea from Red Hot Chili Peppers  
output=Brenham police officer refused service at McDonald's

person xtr33me    schedule 24.10.2016    source источник
comment
Привет, я хотел бы обсудить с вами TextSum, я тренирую TextSum на данных CNN и Dailymail и хотел бы узнать ваше мнение по этому поводу. Можем ли мы обменяться электронными письмами, если вы могли бы предоставить мне свой идентификатор электронной почты? Спасибо   -  person Pranay Mathur    schedule 16.12.2016


Ответы (1)


Сам собираюсь ответить на этот. Кажется, проблема здесь заключалась в отсутствии данных для обучения. В конце концов я отсортировал свой файл словаря, однако, похоже, в этом нет необходимости. Причина, по которой это было сделано, заключалась в том, чтобы позволить конечному пользователю ограничить словарный запас примерно 200 тысячами слов, если они того пожелают.

Самой большой причиной проблем, описанных выше, было просто отсутствие данных. Когда я проводил обучение в исходном посте, я работал с более чем 40 000 статей. Я думал, что этого достаточно, но оказалось, что это не так, и это стало еще более очевидным, когда я углубился в код и лучше понял, что происходит. В конце концов, я увеличил количество статей до более чем 1,3 миллиона, я тренировался около полутора недель на своей 980GTX и получил среднюю потерю примерно от 1,6 до 2,2. Я видел НАМНОГО лучшие результаты.

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

Последнее замечание, которое я усвоил на собственном горьком опыте, заключается в следующем. Убедитесь, что вы обновились до последней версии 0.11 Tensorflow. Первоначально я тренировался с использованием 0.9, но когда я начал выяснять, как экспортировать модель для tensorflow, я обнаружил, что в этом репозитории нет файла export.py. Когда я обновился до 0.11, я обнаружил, что файловая структура контрольной точки, похоже, изменилась в 0.11, и мне нужно было потратить еще 2 недели на обучение. Поэтому я бы порекомендовал просто обновиться, так как они решили ряд проблем, которые я наблюдал во время RC. Мне все же пришлось установить is_tuple=false, но в остальном все сработало хорошо. Надеюсь, это поможет кому-то.

person xtr33me    schedule 29.11.2016