首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每次运行model.fit时,TensorFlow模型的准确性都会发生很大变化

每次运行model.fit时,TensorFlow模型的准确性都会发生很大变化
EN

Stack Overflow用户
提问于 2020-09-16 20:02:07
回答 1查看 154关注 0票数 1

我的项目是试着从陀螺仪和加速计的数据中找出是否可以预测在电话旁边讲话的人的性别。我有315个例子(每个例子60秒),每个例子有2997条线,每条线代表来自陀螺/加速度计xyz轴的向量的大小。

我通过相同的种子对输入和输出进行了混洗,并对输入数据进行了标准化。我在60|20|20上拆分数据。在这个测试中,我尝试从加速计中查看是否有男性说话,因此输出是二进制的。

当我用当前模型训练数据时,有时我的准确率高达0.68,低至0.36,而损失几乎总是在0.69左右。我在for循环中运行了10次,平均准确率为0.5,损失为0.69。

第一个问题是,我尝试了多种类型的模型、学习率、优化算法等,但平均而言,我并不太成功。我应该尝试递归神经网络吗?我可以在哪里学习它?

第二个问题是,如果我训练模型的准确率为68%,即使我知道平均准确率为50%,也可以说模型有68%的准确率吗?

代码语言:javascript
复制
model = tf.keras.Sequential()    
model.add(layers.Dense(512, activation='relu',input_shape = (2997,), kernel_regularizer=regularizers.l2(0.001)))
model.add(layers.Dropout(0.5))
for j in range(10) :
    model.add(layers.Dense(1024, activation='relu', kernel_regularizer=regularizers.l2(0.001)))
    model.add(layers.Dropout(0.5))

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

lr_schedule = tf.keras.optimizers.schedules.InverseTimeDecay(
  0.001,
  decay_steps=200,
  decay_rate=1,
  staircase=True)    

callbacks = [
             tf.keras.callbacks.EarlyStopping(
                 monitor='val_loss', patience = 20
             )
]

model.compile(optimizer=tf.keras.optimizers.RMSprop(learning_rate = lr_schedule), 
              loss=tf.keras.losses.BinaryCrossentropy(from_logits=True), 
              metrics = ['accuracy'])

history = model.fit(
    train_vector_examples,
    train_vector_labels,
    validation_split = 0.25,
    epochs =80,
    callbacks=callbacks,
    verbose=0,
    shuffle=False
    )    

loss1, accuracy = model.evaluate(test_vector_examples, test_vector_labels)
EN

回答 1

Stack Overflow用户

发布于 2020-09-16 20:42:06

这是我自己处理不同类型数据的经验;为了对您的问题有好的解决方案,您可能应该在提出任何模型/算法之前仔细研究数据的特征。

  • 第一个问题:一般来说,RNN适用于具有时间依赖性的数据,或者换句话说,适用于输入顺序很重要的情况(例如时间序列、文本)。因此,我认为RNN可能不是您的数据类型的最佳选择,因为我认为在您的dataset.
  • Second问题中,排序并不重要:这实际上取决于您试图解决的问题的难度;但在我看来,68%是相当低的,因为50%基本上与随机选择相同。你可能想要进一步提高准确性。

另外,从你的解释中,我可以看到每个陀螺仪/加速度计输入都具有秩3 (xyz)的形状,所以也许你可以尝试一些CNN架构,看看它是如何进行的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63919665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档