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

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

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

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

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

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

import sys, json, codecs, csv

import numpy as np

import random

import pandas as pd

import tqdm

import itertools

import seaborn as sns

# visualization

import matplotlib

import numpy as np

import matplotlib.pyplot as plt

%matplotlib inline

Импортируйте модули nltk для препроцессинга текста

from nltk.tokenize import word_tokenize, sent_tokenize

from nltk.corpus import stopwords

Импортируйте модули keras для создания нейронной сети

from keras.layers import Dense, Activation

from keras.layers import LSTM, GRU, Dropout, BatchNormalization

from keras.layers import Input, Dense

from keras.models import Model

from keras.optimizers import RMSprop, Adam

 

# word2vec

from gensim.models import word2vec

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

with codecs.open('./edimdoma_dataset.csv', 'r') as f:

    reader = csv.reader(f)

    for line_id, line in enumerate(reader):

        if line_id == 0:

            continue

        doc = line[2]

        recipe_info = json.loads(doc)

 

 

3.     Получите и распечатайте полученные категории рецептов

category = recipe_info['recipeCategory'].strip() if 'recipeCategory' in recipe_info else 'NONE'

categories.append(category)

plt.figure(figsize=(12,8))

ax = sns.countplot(categories)

ax.set_xticklabels(ax.get_xticklabels(), rotation=40, ha="right")

plt.tight_layout()

plt.show()

 

4.     Подготовьте входные данные для обучения нейронной сети, для этого:

a.      Удалите слова из списка stopwords пакета nltk;

stop_words = stopwords.words('russian')

stop_words.extend(['.', ';', '!' ])

print(u" ".join(stop_words))

b.     Объедините некоторые инструкции в одну большую строку;

c.      Проведите токенизацию текста по предложениям;

d.     Проведите токенизацию предложений по словам;

e.      Переведите полученные слова в нижний регистр;

 

5.     Обучите модель word2vec, используя тексты рецептов. Для этого подготовьте следующую конструкцию:

 

trained_word2vec = <train gensim word2vec with your sentences>

 

6.     Задайте параметры нейронной сети, которая принимает на вход тексты рецептов и предсказывает их категорию:

out = Dense(len(cat2id), activation='*')(out)

model.compile("*", loss='*')

 

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

8.     Инициируйте процесс обучения нейронной сети. Реализуйте код для вычисления тестового loss:
for epoch in range(100):

print("epoch: {}".format(epoch))

    losses = []

    for batch_x, batch_y in get_batches(train_dataset):

        loss = model.train_on_batch(batch_x, batch_y)

        losses.append(loss)

    print("train_loss: {}".format(np.mean(losses)))

 

9.     Проверьте как ваша модель работает на тестовой выборке, для этого напишите функцию predict(query), выполняющую команду:

preds = model.predict(np.expand_dims(batch, 0))[0]
for x in sorted(enumerate(preds), key=lambda x: x[1], reverse=True)[:5]:

        print(u"{}: {}".format(cats[x[0]], x[1]))

 

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

a)     сделайте оптимизацию гиперпараметров нейронной сети. Попробуйте улучшить работу нейронной сети за счет слоев Batchnorm (https://arxiv.org/abs/1502.03167) и DropOut (https://www.cs.toronto.edu/~hinton/absps/JMLRdropout.pdf).

b)     Обучите нейронную сеть, которая предсказывает время, необходимое для приготовления блюда по тексту рецепта. Используйте в качестве предсказываемого значения столбец «CookTime».


◄ CS231n: Convolutional Neural Networks for Visual Recognition
Практическое задание №2 ►
Пропустить Навигация
Навигация
  • В начало

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

      • Мои курсы

      • Теги

    • Мои курсы

    • Курсы

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

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

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

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

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

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

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

          • ТОИ маг

          • Modern computer technology

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

          • MUDP

          • ОНС-Н

          • RL

          • ИИ_НС

          • КрПр

          • КЗ

          • АДС

          • РПП

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

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

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

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

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

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

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

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

        • Другое

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

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

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

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

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

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

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

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

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

        • Другое

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

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

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

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

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

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

        • Архив

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

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

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

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

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

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

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

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

        • ВМШ

          • ВМШ - 24

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

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

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

      • Олимпиады

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

      • Разное

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

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

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