将字符串值作为卷积神经网络的标签传递

问题描述 投票:0回答:1

在具有图像数据集的CNN模型上工作,每个图像读取一个6位数字,其对应的标签是图像中数字的字符串值(例如“ 658945”)。因此,数据集中的每个标签都与另一个标签不同,并且数据集中的每个图像都有一个标签。我知道以标签形式(作为字符串)传递标签时,出现此错误:'str' object has no attribute 'ndim'。那么实现标签的正确方法是什么?输出层的神经元应该和数据集中的标签一样多吗?

更新:这是代码:

x_train, y_train = create_training_data()

print(x_train)
print(y_train)

model = Sequential()

model.add(Conv2D(64, (3, 3), input_shape = x_train.shape[1:]))
model.add(Activation('relu'))
model.add(MaxPool2D(pool_size=(2, 2)))

model.add(Conv2D(64, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPool2D(pool_size=(2, 2)))

model.add(Flatten())
model.add(Dense(64))
model.add(Dense(1, activation='sigmoid'))

model.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(x_train, y_train, batch_size=8, epochs=25, validation_split=0.1, verbose=1)

x_train:

[[[[1.        ]
   [1.        ]
   [1.        ]
   ...
   [0.99215686]
   [0.99215686]
   [1.        ]]]]

y_train:

[['321043'], ['734231'], ['754946'], ['135039'], ['529285'], ['458224'], ['403070']...['533067'], ['185215'], ['495197'], ['100333']]
python tensorflow keras cnn
1个回答
0
投票

通过[["123456"],["654312"]]而不是["123456","654312"]作为您的“标签列表”。

© www.soinside.com 2019 - 2024. All rights reserved.