объединение (объединение) выходных данных сети с входными данными, полученными в пользовательских моделях keras, создает ошибку - PullRequest
0 голосов
/ 31 января 2020

я пытаюсь реализовать Джордан net с некоторыми плотными слоями, я хочу объединить выходные данные net с входными данными (я хочу, чтобы сеть видела свои последние предсказанные значения, но сейчас заставляю ее работать достаточно только последнего значения). Я использую пользовательскую модель в Keras 2. Я попробовал все, но есть ошибка при слиянии (слой), независимо от того, что я использую tf.concat или tf.keras.layers.concatenation. модель может скомпилироваться, но она не будет обучаться или предсказывать.

error is ---> AttributeError: у объекта 'Concatenate' нет атрибута 'shape'

class Jordan (tf.keras.Model):

    def __init__(self,num_feedback=1):
        super().__init__()
        self.feedback = np.zeros((1,num_feedback))
        self.l1 = tf.keras.layers.Dense(32, activation='relu')
        self.l2 = tf.keras.layers.Dense(16, activation='relu')
        self.outp = tf.keras.layers.Dense(1)

    def call(self, inputss):
        _concat = tf.concat ( [  self.feedback , inputss ] )
        _1 = self.l1(_concat)
        _2 = self.l2(_1)
        _output = self.outp(_2)
        self.feedback = _output
        return _output

a = np.ones((100,6))
b = np.ones((100,1))
model = jordan(10)
model.compile(optimizer='adam',loss='MSE',metrics=['accuracy'])
model.fit(a,b,epochs=10)

1 Ответ

0 голосов
/ 01 февраля 2020

хорошо, здесь была проблема, в model.fit () вам нужно настроить bach_size на первое измерение self.feedback -------> это 1 в этом коде, поэтому размер пакета должен быть 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...