我正在研究这个模型,该模型将标签编码输入转换为嵌入式输入,以用作训练目的的输入数据。 下面是模型函数
def get_model(encoded_inputs):
input_layers = list()
embedded_layers = list()
for i in range(len(encoded_inputs)):
n_labels = len(unique(encoded_inputs[i])) # get the number of unique labels
input_layers = Input(shape=(1, )) #define input layer
embedded_layers = Embedding(n_labels, 50)(input_layers) #define the embedding layer
input_layers.append(input_layers) #store the input layer
embedded_layers.append(embedded_layers) # store the embedded layer
#concatenate all the embedded layers
all_embedded_layers = concatenate(embedded_layers)
all_embedded_layers.BatchNormalization()
dense = Dense(300, activation='relu', kernel_initializer='he_normal')(all_embedded_layers)
dense.Dropout(0.3)
dense.BatchNormalization()
dense = Dense(300, activation='relu', kernel_initializer='he_normal')(all_embedded_layers)
dense.Dropout(0.3)
dense.BatchNormalization()
output = Dense(1, activation='sigmoid')(dense)
model = Model(inputs = input_layers, outputs=output)
return model
当我调用model函数时:
model = get_model (my_X_train_enc)
我得到了一个错误:
AttributeError Traceback (most recent call last)
<ipython-input-47-dbeea8a10fb6> in <module>()
----> 1 model = get_model(my_X_train_enc)
2 model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
<ipython-input-46-e593e3e6dd87> in get_model(encoded_inputs)
1 def get_model(encoded_inputs):
2 input_layers = list()
----> 3 print(input_layers.type())
4 embedded_layers = list()
5 for i in range(len(encoded_inputs)):
AttributeError: 'list' object has no attribute 'type'
我相信错误是不言而喻的。input_layers=list()
,因此变量的类型显然是list
。 在下一行中,您尝试访问一个属性type
,而Python中的list
对象没有这个属性。 或者,如果只想检查变量本身的类型(而不是属性),可以使用type
内置。 例如,type(input_layers)
将返回
。
注:我还没有检查其余代码的有效性,但看起来错误只是由于您试图打印对象没有的属性的值而引起的