我开始像这样玩张量流:
我的训练数据由这样的数组组成(在此示例中,len为3,但在我的实际示例中,len为100):
[1, 0, 0]
[0, 1, 0]
[0, 0, 1]
....
then it repeats itself until a 1000
...
[1, 0 , 0]
[0, 1, 0]
[0, 0, 1]
我的标签数据由一个数组列表组成,该数组显示第1个位置:
[1, 2, 3, 1, 2, 3 .....] until 1000.
我正在为模型使用以下配置,但准确性似乎很低。所以我想这不是学习的大事。我是否错误地解释了张量流的工作原理?有人可以给我提示如何解决这个问题吗?
model.add(layers.Dense(100, activation='relu'))
model.add(layers.Dense(100, activation='softmax'))
model.compile(optimizer=tf.compat.v1.train.AdamOptimizer(0.01),
loss='categorical_crossentropy',
metrics=['accuracy'])
model.fit(data, labels, epochs=50, batch_size=100)
谢谢!
答案 0 :(得分:0)
最后一个密集层中神经元的数量应为您要预测的类的数量。如果您的情况下有3个类别,则最后一层应为Dense(3)
而不是Dense(100)
。
此外,当标签为整数时(例如您的情况),应使用sparse_categorical_crossentropy
而不是categorical_crossentropy
。当您有一个热编码矢量作为输出时,可以使用categorical_crossentropy
。要转换为单编码矢量,可以使用keras.utils中的to_categorical
函数。