当前位置: 首页 > 知识库问答 >
问题:

基于Keras的二分类模型的类权重

屠和洽
2023-03-14

我们知道,在二分类模型中,不平衡数据的拟合方法可以传递类权重字典。我的问题是,当在具有sigmoid激活的输出层中只使用1个节点时,我们仍然可以在训练期间应用类权重吗?

model = Sequential()
model.add(Dense(64, activation='tanh',input_shape=(len(x_train[0]),)))
model.add(Dense(1, activation='sigmoid')) 

model.compile(
    optimizer=optimizer, 
    loss=loss, 
    metrics=metrics)

model.fit(
    x_train, y_train, 
    epochs=args.e, 
    batch_size=batch_size,
    class_weight={0: 1, 1: 3})

共有1个答案

姜嘉荣
2023-03-14

如果你想完全控制体重,为什么不写一个自定义的减肥函数呢?

from keras import backend as K
def weighted_binary_crossentropy( y_true, y_pred, weight=1. ) :
    y_true = K.clip(y_true, K.epsilon(), 1-K.epsilon())
    y_pred = K.clip(y_pred, K.epsilon(), 1-K.epsilon())
    logloss = -(y_true * K.log(y_pred) * weight + (1 - y_true) * K.log(1 - y_pred))
    return K.mean( logloss, axis=-1)
 类似资料:
  • 我正在尝试使用Keras ResNet50实现来训练二值图像分类模型。 我想在不使用转移学习的情况下测试模型,但当我尝试使用简单的密集层(带有sigmoid激活)来更改二元分类的输出层时,我在形状大小方面出现了错误。 我的代码是这样的: 执行此操作时,我出现以下错误: 如果我在得到的致密层之前添加一个扁平层: 我错过了什么?如何更改致密层的输入形状?

  • 我有一个现有的C#泛型类,希望根据使用的类型添加或删除一个方法,我解释道 对于特定的

  • Keras有两种类型的模型,序贯模型(Sequential)和函数式模型(Model),函数式模型应用更为广泛,序贯模型是函数式模型的一种特殊情况。 两类模型有一些方法是相同的: model.summary():打印出模型概况,它实际调用的是keras.utils.print_summary model.get_config():返回包含模型配置信息的Python字典。模型也可以从它的config

  • Keras有两种类型的模型,顺序模型(Sequential)和泛型模型(Model) 两类模型有一些方法是相同的: model.summary():打印出模型概况 model.get_config():返回包含模型配置信息的Python字典。模型也可以从它的config信息中重构回去 config = model.get_config() model = Model.from_config(con

  • 问题内容: 在JavaScript中,每个对象同时是一个实例和一个类。要进行继承,可以将任何对象实例用作原型。 在Python,C ++等中,有类和实例作为单独的概念。为了进行继承,您必须使用基类创建一个新类,然后可以使用该新类来生成派生实例。 为什么JavaScript朝这个方向发展(基于原型的面向对象)?与传统的基于类的OO相比,基于原型的OO有哪些优点和缺点? 问题答案: 这里大约有一百个术

  • def create_model(model_name,data,test_data): def validate_model(model_name,test_data,labels):

  • 问题内容: 我正在用Java编写一个Kafka流应用程序,该应用程序将接受由连接器创建的输入主题,该连接器将模式注册表和avro用于键和值转换器。连接器产生以下架构: 实际上,有几个主题,键模式始终是“ int”,而值模式始终是某种记录(用户,产品等)。我的代码包含以下定义 最初,我尝试使用类似的内容来使用该主题, Consumed.with(Serdes.Integer(), userSerde

  • 在 Keras 中有两类主要的模型:Sequential 顺序模型 和 使用函数式 API 的 Model 类模型。 这些模型有许多共同的方法和属性: model.layers 是包含模型网络层的展平列表。 model.inputs 是模型输入张量的列表。 model.outputs 是模型输出张量的列表。 model.summary() 打印出模型概述信息。 它是 utils.print_sum