我使用上述文章研究 Triplet Loss。标签的数字是从 0 到 9 尝试下面的代码。
for images_batch, labels_batch in train_dataset:
print('images batch shape:', images_batch.shape)
print('labels batch', labels_batch.shape)
print(labels_batch)
break
然后我确认模型如下所示?
型号:“sequential_1” _________________________________________________________________ 层(类型)输出形状参数# ==================================================== ================ conv2d_2 (Conv2D) (无, 28, 28, 64) 320 _________________________________________________________________ max_pooling2d_2 (MaxPooling2 (无, 14, 14, 64) 0 _________________________________________________________________ dropout_2(辍学)(无,14,14,64)0 _________________________________________________________________ conv2d_3 (Conv2D) (无, 14, 14, 32) 8224 _________________________________________________________________ max_pooling2d_3 (MaxPooling2 (无, 7, 7, 32) 0 _________________________________________________________________ dropout_3(辍学)(无,7,7,32)0 _________________________________________________________________ flatten_1(展平)(无,1568)0 _________________________________________________________________ dense_1(密集)(无,256)401664 _________________________________________________________________ lambda_1 (Lambda) (无, 256) 0 ==================================================== ================ 总参数:410,208 可训练参数:410,208 不可训练参数:0 _________________________________________________________________
但是,我有一个问题。最后一层的输出数字 256 是什么意思?我认为一般来说,当我们使用 MNIST 时,输出层的编号为 10,并将输出的编号更改为分类的、单热的。在这种情况下,我真的不知道为什么输出层的数字是256,标签仍然像0到9。请详细说明一下。