Что подавать на вход нейронке?

В случае обработки изображения нейронкой все понятно, там берется изображение фиксированного размера и на вход нейронке подаются значения пикселей. А как быть, если количество входных данных может варьироваться? Например если нейронка должна делать какой-то вывод о слове, тогда вероятно на вход будут подаваться буквы этого слова, но их может быть разное количество.
  • Вопрос задан
  • 148 просмотров
Пригласить эксперта
Ответы на вопрос 3
longclaps
@longclaps
Рассмотрим слова длины до 10 букв включительно. Наименьшее общее кратное из длин - 2520, наверное, это приемлемо.
Берёшь и подаёшь на входы:
"a" -> "a" * 2520
"ab" -> "a" * 1260 + "b" * 1260
и так далее.
ps Сам не пробовал.
pps Я просто показал, как можно реализовать "масштабирование". Но что мешает просто пополнить слово до максимальной длины пробелами? Наверное, недостаток ума и сообразительности ) Напридумывать способов можно множество.
Ответ написан
DanilBaibak
@DanilBaibak
Machine Learning engineer
Примерный план действий:

  • Определяете среднюю длину слова в наборе
  • Токенизируете каждое слово
  • Удаляете "лишние" у очень длинных слов или "добавляете" недостающие знаки у коротких слов


Таким образом можно решить размерности входных данных. Пример для наглядности:

import numpy as np

from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences

X = np.array(['диверсификация', 'приз', 'калейдоскоп'])

tokenizer = Tokenizer(char_level=True)
tokenizer.fit_on_texts(X)

X_tokenized = tokenizer.texts_to_sequences(X)
print(X_tokenized)

X_padded = pad_sequences(X_tokenized, maxlen=len(X_tokenized[2]), padding='post', truncating='post')
print(X_padded)
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
Дорог может быть миллион в зависимости от того что автор хочет получить на выходе.
Если - посчитать количество гласных букв - то одно. Если категоризировать слово или слова
то это другое. И возможно тут нужна предобработка слов. Стемминг или лемматизация.

Вообще НС на вход получает векторы вещественных чисел. И преобразовать слово в эти векторы - большое искусство. Оно должно быть осмысленным. Если нам не удалось получить эти векторы - то бесполезно что либо делать. Нейронка на входе будет видеть шум. И никакого обобщения сделать не сможет.

Поэтому давайте в топике спросим а как звучит настоящее техническое задание?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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