Пакетный продукт и слой Theano Neupy / Theano

Как мне внедрить продукт И в Теано? Математически это эквивалент умножения всего предыдущего слоя (без весов). Я думаю, что мой код работает для пакета размером 1, но я хочу, чтобы он работал для пакетов.

Вот что я попробовал. Обратите внимание, я понятия не имею, что я делаю.

Продукт И функция

def prod_and(result, k):
    elif k[0][0] == 7:
        return theano.tensor.stack([
            [result[i][0] * result[i][1]*\
            result[i][2] * result[i][3]*\
            result[i][4] * result[i][5]*\
            result[i][6]] for i in np.arange(1)
    ])

Продукт И Слой

class ProdAnd(layers.BaseLayer):

    # Begin by initializing.
    def initialize(self,):
        super(ProdAnd, self).initialize()

    # Create output from input.
    def output(self, *input_values):
        return prod_and(input_values[0], self.input_shape)

Я думаю, что моя проблема возникает из-за моей неспособности понять взаимосвязь между типами neupy (например, что связывает слои neupy {layer.0}). Также я не думаю, что понимаю, как Theano реализует пакет иначе, чем стохастик.

В идеале лучший ответ будет включать в себя исправление продукта и функции, а также объяснение того, как входы и выходы работают в этом конкретном примере.

демонстрация

Примером, где вы могли бы использовать это, является нечеткая нейро-сеть, которая использует нечеткий вывод в стиле Такаги-Сугено (см. Слой 5).

введите описание изображения здесь

Я пытаюсь облегчить проблему, поэтому я разбил ее на простое умножение всех входных данных предыдущего слоя.

Уравнение имеет вид:

введите описание изображения здесь

где x - входной слой, а y - выходной. Дифференциация по каждой переменной оставляет другую переменную из предыдущего уровня (так что это не сложное вычисление).

0 ответов

Другие вопросы по тегам