关于 Keras 和分类

Posted

技术标签:

【中文标题】关于 Keras 和分类【英文标题】:about Keras and classification 【发布时间】:2021-11-01 06:33:05 【问题描述】:

我确实有 2 个输入 X 和 Y,输出 C 采用 one-hot 编码 [0,1] 或 [1,0]。

X,Y(转置)矩阵的大小为 2 * 320,C 的大小为 1 * 320。

我应该如何在 Keras 中以这样的方式编写网络:

第 0 层:有 2 个输入(和 2 个节点)

第1层有4个单元和从第0层到第1层的线性激活函数

第 2 层有 1 个节点(以及一个 softmax 激活函数?从第 1 层到第 2 层)。

我需要使用这个网络来执行二进制分类。谢谢!

【问题讨论】:

您好,您的问题能问清楚吗?你可以找到很多在线资源,展示如何在 Keras 中编写这样的模型。 【参考方案1】:

使用函数式 API 编写。

inputs = keras.Input(shape=(2,)) # layer 0
layer = layers.Dense(4, activation="linear")(inputs) # layer 1
outputs = layers.Dense(1, activation="softmax")(layer ) # layer 2
model = keras.Model(inputs=inputs, outputs=outputs, name="noname")

更新导致我要打架:

import pandas as pd
import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from tensorflow.keras.optimizers import Adam

def gen_model():
  inputs = keras.Input(shape=(2,)) # layer 0
  layer = layers.Dense(4, activation="linear")(inputs) # layer 1
  outputs = layers.Dense(1, activation="softmax")(layer ) # layer 2
  model = keras.Model(inputs=inputs, outputs=outputs, name="noname")

  model.compile(loss=tf.keras.losses.MeanSquaredError(name="mse"), optimizer=Adam(), metrics=None) # Adam(learning_rate=1e-2)
  return model



X = df[['X','Y']].values # assuming the data are in a pandas dataframe
y = df['C'].values

model = gen_model()

model.fit(x=X, y=y, batch_size=32, epochs=500, validation_split=0.2)

【讨论】:

没问题:),当您可以接受答案时,问题就解决了【参考方案2】:

这是一个示例代码:

input_layer = Input(shape=(np.transpose(X).shape[1],))
dense_layer_1 = Dense(4, activation='relu')(input_layer)
output = Dense(np.transpose(C).shape[1], activation='softmax')(dense_layer_1)

model = Model(inputs=input_layer, outputs=output)
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['acc'])

【讨论】:

非常感谢,拉哈!

以上是关于关于 Keras 和分类的主要内容,如果未能解决你的问题,请参考以下文章

keras调用预训练模型分类

使用 LSTM 和 CNN 对 Keras 进行故障排除以进行时间序列分类

你需要一个神经网络(keras)来使用分类器(sklearn)[关闭]

使用 keras ResNet50 模型进行二进制分类的输出层

堆叠分类器无法识别 Keras

使用 Keras 进行分类:预测和多类