“Tensor”对象没有属性“ndim”

2024-04-26 02:55:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试制作一个包括LSTM、LSTM(嵌入)、DNN的concat网络 解决分类问题

但我犯了这个错误。 参见以下代码:

# 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

but got this error: --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) in () ----> 1 model.fit([data,data_], y, epochs = 350, batch_size = 64)

/etc/anaconda3/lib/python3.6/site-packages/keras/engine/training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, 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 # Prepare validation data. 1632 do_validation = False

/etc/anaconda3/lib/python3.6/site-packages/keras/engine/training.py in _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 in _standardize_input_data(data, names, shapes, check_batch_axis, exception_prefix) 74 data = data.values if data.class.name == 'DataFrame' else data 75 data = [data] ---> 76 data = [np.expand_dims(x, 1) if x is not None and x.ndim == 1 else x for x in data] 77 78 if len(data) != len(names):

/etc/anaconda3/lib/python3.6/site-packages/keras/engine/training.py in (.0) 74 data = data.values if data.class.name == 'DataFrame' else data 75 data = [data] ---> 76 data = [np.expand_dims(x, 1) if x is not None and x.ndim == 1 else x for x in data] 77 78 if len(data) != len(names):

AttributeError: 'Tensor' object has no attribute 'ndim'

plz,帮帮我:)


Tags: sampleinfromimportoutputdatasizemodel
1条回答
网友
1楼 · 发布于 2024-04-26 02:55:16
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),但是您有{}。那不行。在

但是总结显示(None, 190, 1)。所以我想你纠正了。一旦我做了这个更正,网络训练正常,我没有得到任何错误。在

你的y是什么形状?在

相关问题 更多 >