使用keras为什么accuracy一直为0_TF2 4.Keras模型训练

本文探讨了在使用Keras进行深度学习模型训练时遇到accuracy始终为0的可能原因,并提供了解决方案。介绍了如何运用样本加权、类别加权以及回调函数,如EarlyStopping和ReduceLROnPlateau来优化训练过程。同时,文章还展示了如何在多输入、多输出模型中处理数据,并给出了完整的代码示例,涉及模型构建、训练和指标设置。
摘要由CSDN通过智能技术生成

7059dc08e60731a70c1caed2ddf78ba4.png

924bf663ac5e02107fe4314fa6477b93.png

回调函数:

7c2821e7f173314d8a577c7146f9b815.png
inputs = tf.keras.Input(shape=(32,))  #(batch_size=32,数据维度32),shape为改成接受的数据的维度
x = tf.keras.layers.Dense(64, activation='relu')(inputs) #(64个神经元,)
x = tf.keras.layers.Dense(64, activation='relu')(x)#(63个神经元)
predictions = tf.keras.layers.Dense(10)(x) #(输出是10类)
#- inputs(模型输入)
#- output(模型输出)

model = tf.keras.Model(inputs=inputs, outputs=predictions)

#指定损失函数 (loss) tf.keras.optimizers.RMSprop
#优化器 (optimizer) tf.keras.losses.SparseCategoricalCrossentropy
#指标 (metrics) ['accuracy'] 

model.compile(optimizer=tf.keras.optimizers.Adam(0.001), #优化器
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True), #损失函数
              metrics=['accuracy']) #评估函数

常用的优化器和损失函数:

https://www.tensorflow.org/guide/keras/train_and_evaluate#many_built-in_optimizers_losses_and_metrics_are_available​www.tensorflow.org

优化器:

  • SGD() (有或没有动量)
  • RMSprop()
  • Adam()
  • Adagrad

损失:

  • MeanSquaredError()
  • KLDivergence()
  • CosineSimilarity()
  • Hinge

指标:

  • AUC()
  • Precision()
  • Recall()
  • Poisson

另外,如果想用上述的默认设置,那么在很多情况下,可以通过字符串标识符指定优化器,损失和指标:

model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])

构建数据集:

import numpy as np
x_train = np.random.random((1000, 32))
y_train = np.random.randint(10, size=(1000, ))

x_val = np.random.random((200, 32))
y_val = np.random.randint(10, size=(200, ))

x_test = np.random.random((200, 32))
y_test = np.random.randint(10, size=(200, ))

model.fit(x_train, y_train, batch_size=32, epochs=5, validation_data=  (x_val, y_val))
Help on method fit in module tensorflow.python.keras.engine.training:
fit(x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None, validation_split=0.0, validation_data=None, shuffle=True, class_weight=None, sample_weight=None, initial_epoch=0, steps_per_epoch=None, validation_steps=None, validation_freq=1,
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值