Перейти к основному содержанию
EDU-MMCS
Вы используете гостевой доступ (Вход)

Научно-исследовательский семинар: нейронные сети и глубокое обучение

  1. В начало
  2. Курсы
  3. Осенний семестр
  4. Магистратура
  5. НИСНейрСети
  6. Раздел 1. Введение в нейронные сети
  7. Практическое задание №2

Практическое задание №2

Требуемые условия завершения
Открыто с: среда, 9 сентября 2020, 00:00
Срок сдачи: среда, 16 сентября 2020, 00:00

1.     Запустите jupyter notebook, создайте тетрадку в папке с данными, импортируйте модули, аналогичные практическому заданию №1

2.     Считайте данные о рецептах с помощью модуля csv:

with codecs.open(os.path.join(data_path, 'edimdoma_dataset.csv'), 'r') as f:

    reader = csv.reader(f)

3.     Подготовьте данные для тренировки:

a.     Объедините инструкции в текст
text = "".join(instructions)[:300000]

b.     Отсортируйте и сделайте словарь символов и соответствующих им id
chars = sorted(list(set(text)))

print('total chars:', len(chars))

char2id = dict((c, i) for i, c in enumerate(chars))

4.     Для задачи генерации текста создайте нейронную сеть со следующими параметрами:
            model = Sequential()

<your code here>

model.add(Dense(len(chars)))

model.add(Activation('softmax'))

optimizer = RMSprop(lr=0.01)

model.compile(loss='categorical_crossentropy', optimizer=optimizer)

5.     Разбейте данные на тренировочную и тестовую выборки, для этого реализуйте функцию get_batches(batch_count=128, batch_size=64)

6.     Подготовьте функцию выбора символа:

def sample_character(preds, temperature=1.0):

    preds = np.asarray(preds).astype('float64')

    preds = np.log(preds) / temperature

    exp_preds = np.exp(preds)

    preds = exp_preds / np.sum(exp_preds)

    probas = np.random.multinomial(1, preds, 1)

    return np.argmax(probas)

7.     Инициируйте процесс обучения нейронной сети.

a.      Реализуйте код для вычисления тренировочного loss:

Создайте пустой массив и итеративно добавляйте полученные значения методом train_on_batch

losses = []

for batch_x, batch_y in get_batches():

    loss = model.train_on_batch(batch_x, batch_y)

    losses.append(loss)

b.     Задайте параметры для генерации текста:

if epoch > 40:

        max_gen_count = 500

        index = random.randint(0, len(text) - 100)

        for t in [0.1, 0.4, 0.7, 1]:

            sentence = text[index: index + seq_size]

            generated = sentence

c.      Выведите получившиеся результаты сгенерированных предложений

for step in range(max_gen_count):

                batch = np.zeros((1, seq_size,))

                for i in range(seq_size):

                    batch[0,i] = char2id[sentence[i]]

                id = sample_character(model.predict_on_batch(batch)[0], t)

                generated += chars[id]

                sentence = sentence[1:] + chars[id]

            print(generated)

8.     Задачи для самостоятельной работы:

a.      Увеличить точность полученной модели. Для этого, воспользуйтесь продвинутыми техниками и нахождением подходящих гиперпараметров: таких как изменение размера последовательности, количества слоев сетей gru / lstm и т.д.

b.     Решите задачу с помощью подхода, основанного на словах вместо символов, для получения красиво выглядящих текстов.


◄ Практическое задание №1
Практическое задание №3 ►
Пропустить Навигация
Навигация
  • В начало

    • Страницы сайта

      • Мои курсы

      • Теги

    • Мои курсы

    • Курсы

      • Осенний семестр

        • Прикладная математика и информатика

        • Фундаментальная информатика и ИТ

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

          • ТОИ маг

          • Modern computer technology

          • Математика и её приложения в науке и инженерии

          • MUDP

          • ОНС-Н

          • RL

          • ИИ_НС

          • КрПр

          • КЗ

          • АДС

          • РПП

          • НИСНейрСети

            • Раздел 1. Введение в нейронные сети

              • ЗаданиеПрактическое задание №1

              • ЗаданиеПрактическое задание №2

            • Раздел 2. Глубокое обучение

            • Раздел 3. Глубокое обучение в NLP

        • Аспирантура

        • Вечернее отделение

        • Другое

      • Весенний семестр

        • Прикладная математика и информатика

        • Фундаментальная информатика и ИТ

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

        • Аспирантура

        • Вечернее отделение

        • Другое

      • Воскресная компьютерная школа

        • Пользователь компьютера плюс

        • Пользователь прикладных программ

        • Программирование I ступень

        • Программирование II ступень

        • Программирование III ступень

        • Архив

      • Воскресная математическая школа

        • Открытое тестирование РНОМЦ и мехмата ЮФУ - 2025

        • Олимпиадная математическая школа

        • Повышение квалификации

        • Доступная математика

        • Лаборатория математического онлайн-образования мех...

        • Осенняя универсиада

        • Научно-практическая конференция

        • ВМШ

          • ВМШ - 24

        • Летняя олимпиадная математическая школа РНОМЦ и ме...

      • Государственная итоговая аттестация

      • Дополнительное образование

      • Олимпиады

      • Видеолекции

      • Разное

      • Архив курсов

      • Заочная школа мехмата ЮФУ

Служба поддержки сайта
Вы используете гостевой доступ (Вход)
НИСНейрСети
Сводка хранения данных
Скачать мобильное приложение Яндекс.Метрика