Size: a a a

Data Science Chat

2021 November 22

В

Валентин👾 in Data Science Chat
Здравствуйте, помогите пожалуйста с интерактивными графиками в Юпитере. Прочитал в интернете, что ipympl делает графики матплотлиба интерактивными в юпитере.
Поставил ipympl через pip install ipympl
Вызвал команду %matplotlib widget
Построил график и... нифига. Вообще ничего не изменилось. Что я делаю не так? Как включить интерактивность графиков?
Ноутбук пробовал перезагружать
источник

В

Валентин👾 in Data Science Chat
Всё, перезагрузка сервиса юпитера помогла решить проблему
источник

AN

Alexander N in Data Science Chat
Привет, может поможете.
Борюсь с nan-ами в loss функции. На выходе сети (softmax) -> (Negative log likelyhood loss).
1) Сеть предсказывает некий вектор (например, [0.8, 0.2, 0.0]) - это на выходе softmax.
2) Далее лосс считается по формуле
-torch.sum(target * torch.log(predicted))
В predicted есть значение 0, и логарифм нуля = inf. Из-за этого лосс ломается в nan.
Что делать? Я неправильно лосс реализовал или softmax у меня не должен возвращать 0?
источник

ET

Egorische The Cupcak... in Data Science Chat
А как у вас softmax возвращает ноль, это же взвешенная экспонента?
источник

AN

Alexander N in Data Science Chat
хмм, действительно. Но в отладчике попадаются нули, буду искать.
источник

ET

Egorische The Cupcak... in Data Science Chat
Ну, кстати, torch.exp(-inf) скорее всего ноль выдаст, так что посмотрите на выходы сетки.
источник

AN

Alexander N in Data Science Chat
блин, вот что раскопал:
exp(-9.6087e+01) = 1.8623e-42
а дальше: 1.8623e-42 / 18553.7461 = 0
источник

AN

Alexander N in Data Science Chat
и ничего ведь поделать нельзя...
источник

AK

Alex K in Data Science Chat
а ещё вопросик, у меня старший аналитик, написал так

model.fit(X_train, y_train) # обучение
y_train_pred = model.predict(X_train) # предсказание
y_test_pred = model.predict(X_test) # предсказание

зачем первый предикт?
источник

SD

Sergey Dulikov in Data Science Chat
train_error посчитать например
источник

A

Andrey in Data Science Chat
Зачем после софтмакса логарифмы?
источник

AN

Alexander N in Data Science Chat
нет, после софтмакса выход нейросети. Я ещё про функцию Loss написал - в ней логарифмы
источник

AK

Alex K in Data Science Chat
это типа что-то сходимости данных(хз как правильно сказать)
источник

A

Andrey in Data Science Chat
NLLLoss не поможет тут?
источник

AN

Alexander N in Data Science Chat
мне кажется NLLLoss это как раз сокращение от Negative log likelyhood loss, который у меня и сделан.
источник

AN

Alexander N in Data Science Chat
или это имя какого-то стандартного метода в torch, который уже учитывает такие проблемы?
источник

A

Andrey in Data Science Chat
Сорян, думал там кросс-энтропия, которая не требует софтмакса в конце сетки
источник

A

Andrey in Data Science Chat
Проглядел, короче
источник

A

Andrey in Data Science Chat
А попробуй как раз кросс-энтропию взять, убравши софтмакс.
источник

SD

Sergey Dulikov in Data Science Chat
Если прям хочется писать лосс руками, просто добавьте эпсилон. torch.log(predicted + EPS), EPS=1e-5 например
источник