Объект 'Tensor' не имеет атрибута 'ndim' - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь создать параллельные сети LSTM, LSTM (EMBEDDING), DNN. решить задачу классификации

но я получил эту ошибку. Смотрите код ниже:

# Shared Feature Extraction Layer
from keras.utils import plot_model
from keras.models import Model
from keras.layers import Input
from keras.layers import Dense
from keras.layers.recurrent import LSTM
from keras.layers.merge import concatenate

# define input
visible = Input(shape=(190,1))
visible1 = Input(shape=(3000,1))

# feature extraction
extract1 =  LSTM(50, return_sequences=False)(visible)

extract2 = LSTM(50, return_sequences=False)(visible1)

# merge interpretation
merge = concatenate([extract1, extract2])
# output
output = Dense(1, activation='sigmoid')(merge)
model = Model(inputs=[visible,visible1], outputs=output)
# summarize layers
print(model.summary())
model.compile(optimizer = "adam", loss = 'binary_crossentropy', metrics= 
['accuracy'])  
print("test",data.shape) 
print("test2",data_.shape)
# model.fit([data,data_],  y,  epochs=20, verbose=1)

enter image description here

но получил эту ошибку: -------------------------------------------------- ------------------------- AttributeError Traceback (последний вызов последний) в () ----> 1 model.fit ([data, data_], y, epochs = 350, batch_size = 64)

/ etc / anaconda3 / lib / python3.6 / site-packages / keras / engine / training.py в подходят (self, x, y, batch_size, эпохи, подробности, обратные вызовы, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, ** kwargs) 1628 sample_weight = sample_weight, 1629 class_weight = class_weight, -> 1630 batch_size = batch_size) 1631 # Подготовить данные проверки. 1632 do_validation = False

/ etc / anaconda3 / lib / python3.6 / site-packages / keras / engine / training.py в _standardize_user_data (self, x, y, sample_weight, class_weight, check_array_lengths, batch_size) 1478
output_shapes, 1479
check_batch_axis = False, -> 1480 exception_prefix = 'target') 1481 sample_weights = _standardize_sample_weights (sample_weight, 1482 self._feed_output_names)

/ etc / anaconda3 / lib / python3.6 / site-packages / keras / engine / training.py в _standardize_input_data (данные, имена, формы, check_batch_axis, исключение_prefix) 74 data = data.values ​​if data. class . name == 'DataFrame' else data 75 данных = [данные] ---> 76 data = [np.expand_dims (x, 1), если x не None и x.ndim == 1, иначе x для x в данных] 77 78 если len (данные)! = Len (имена):

/ etc / anaconda3 / lib / python3.6 / site-packages / keras / engine / training.py в (0,0) 74 data = data.values ​​if data. class . name == 'DataFrame' else data 75 данных = [данные] ---> 76 data = [np.expand_dims (x, 1), если x не None и x.ndim == 1, иначе x для x в данных] 77 78 если len (данные)! = Len (имена):

AttributeError: объект 'Tensor' не имеет атрибута 'ndim'

плз, помогите мне:)

1 Ответ

0 голосов
/ 21 марта 2019
visible = Input(shape=(190,1))
visible1 = Input(shape=(3000,1))
model = Model(inputs=[visible,visible1], outputs=output)

И вы пытаетесь запустить model.fit([data,data_], y, epochs = 350, batch_size = 64).Тогда у вас должно быть data_.shape == (*, 3000, 1), но у вас есть data_.shape = (*, 190, 1).Это не сработает.

Но резюме показывает (None, 190, 1).Так что, думаю, ты это исправил.Как только я сделал это исправление, сеть тренируется правильно, я не получил никаких ошибок.

Какова ваша форма y?

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