Size: a a a

Data Science Chat

2021 September 19

S

Sergey in Data Science Chat
Вопрос по keras/tensorflow. Как сделать следующую функцию? У меня есть zeros-тензор. 2-мерный. Я хочу на него нанести гауссиану с заданным матожиданием и дисперсией. То есть, например, чтобы в точке (10,10) было значение 1, в точке (9,10) было значение 0.5, в точке (8,10) было значение 0.25 и так далее, гауссиана с матожиданием в (10,10) и некоей дисперсией.
Я знаю, как посчитать функцию гаусса от одного набора координат, но не знаю, как быстро перебрать всю матрицу (при том, что там не координаты в ячейках, а нули), не делая циклы for
источник

A

Alex96 in Data Science Chat
Пацаны а линрег может предиктить?. Есть у меня датасет прибыль кол-во посещений по текущий месяц. Вывел уравнение из серии прибыль= 2000+ 1.2* посещение(R^2=90%). Но вот щас вопрос , а как например напредиктить на октябрь ноябрь, откуда она будет данные брать ?
источник

AK

Alexander Kozaev in Data Science Chat
Нет модели - нет данных, линрег помогает подобрать свободные параметры модели, но сам по себе ещё не модель (пусть у тебя будет модель-теория «в следующем месяце будет точно такая же структура спроса», тогда напредиктишь и линрегом)
источник

NA

N A in Data Science Chat
источник

S

Sergey in Data Science Chat
Хм, спасибо. Немного уточню задачу, а то всё равно не вполне понимаю.
Есть тензор. Его размерность: [None,4,5,100].
None - это размер батча, на этапе инициализации сети это неизвестная величина.

4 - это тип переменной: матожидание x, матожидание y, std и множитель при гауссиане.

5 - это сколько гауссиан надо наложить на матрицу данного канала

100 - это количество каналов.
Соответственно, на выходе должна быть размерность:
[None,140,140,100], где 140х140 - размер изображения, а 100 - число каналов.
Я понимаю, как multivariate_normal(mean=mean, cov=cov) применить к тензору вида [матожидание x, матожидание y, std, множитель]. Но если размерность как у меня?.. Может, как-то хитро применить map или lambda функции?...
источник

NA

N A in Data Science Chat
mvn.pdf можно применить к тензору любой размерности, главное чтобы последняя ось тензора была равна len(means), в твоем случае 2
источник

S

Sergey in Data Science Chat
Спасибо, попробую
источник

S

Sergey in Data Science Chat
Нет, не сработало
shape=(None, 14, 14, 49)
На idx = np.argwhere(np.ones(shape)).reshape(*shape, len(shape))
Ошибка TypeError: 'NoneType' object cannot be interpreted as an integer
источник

NA

N A in Data Science Chat
Я не про всю функцию, она была под предыдущее описание задачи. А именно про mvn.pdf в строке 9
источник

NA

N A in Data Science Chat
Я правильно понял, что это нужно для инициализации ядра свертки?
источник

S

Sergey in Data Science Chat
Да, для инициализации ядра свёртки. Дальше должны идти слои деконволюции
источник

S

Sergey in Data Science Chat
mvn.pdf
mvn - это  multivariate_normal(mean=mean, cov=cov), насколько я понял.

И меня
mean[0] (None, 3, 49)
cov (None, 3, 49)
источник

S

Sergey in Data Science Chat
Ну и оно не отрабатывает... Оно вообще должно работать в таких условиях?
источник

S

Sergey in Data Science Chat
mean у меня - это list из 2 тензоров
источник

NA

N A in Data Science Chat
Тогда надо написать кастомный Initializer как здесь https://keras.io/api/layers/initializers/
Принимать она будет только не тензор, как в у меня в гисте, а shape ядра свертки. Из гиста перенести в call
источник

S

Sergey in Data Science Chat
Так, я неправильно понял насчёт инициализации. У меня не инициализация, у меня просто слой. Развёртывает из FF в Conv2DTranspose
источник

NA

N A in Data Science Chat
Не должно. Одно дело инициировать коэффициенты ядра свертки, и совсем другое - применить свертку к батчу. Код в гист про первое
источник

S

Sergey in Data Science Chat
А, код в гист про инициализацию, понятно
источник

S

Sergey in Data Science Chat
А есть что-то подходящее именно для исполнения слоя?
источник

NA

N A in Data Science Chat
Свертки всегда с гауссовскким ядром, которая не будет обучаться? Это нужно?
источник