сообщение об ошибке: Ошибка типа: не удалось преобразовать объект типа в Tensor.Содержание: (Нет, 3).Рассмотрим приведение элементов к поддерживаемому типу.
Может кто-нибудь помочь мне с этой ошибкой, я думаю, что я определил этот слой очень похоже с плотным слоем, почему он не работает?
мой код слоя:
from keras.layers.core import Layer
from keras.engine import InputSpec
from keras import backend as K
try:
from keras import initializations
except ImportError:
from keras import initializers as initializations
import numpy as np
class HardAttention(Layer):
def init(self, **kwargs):
super(HardAttention, self).init(**kwargs)
self.input_spec = InputSpec(min_ndim=2)
def build(self, input_shape):
input_dim = input_shape[-1]
self.attention = self.add_weight(shape=input_shape,
initializer='uniform',
name='attention',
dtype=np.float32,
trainable=True)
#dtype=bool)
self.input_spec = InputSpec(min_ndim=2, axes={-1: input_dim})
self.built = True
super(HardAttention, self).build(input_shape)
def call(self, inputs):
return K.multiply(inputs, self.attention)
def compute_output_shape(self, input_shape):
return input_shape
код модели:
(time_step, n_stock) = np.shape(x_train)
model = Sequential()
model.add(InputLayer(input_shape=(3,)))
model.add(HardAttention())
model.add(Dense(5))
model.compile(optimizer='adam', loss='mse')
model.summary()