关于 Keras 和分类
about Keras and classification
我确实有 2 个输入 X 和 Y,输出 C 是单热编码 [0,1] 或 [1,0]。
X,Y(转置)矩阵的大小为2 * 320,C的大小为1 * 320。
我应该如何以这样的方式在 Keras 中编写网络:
<> 第 0 层:有 2 个输入(和 2 个节点)
<> 第 1 层有 4 个单元和一个从第 0 层到第 1 层的线性激活函数
<> 第 2 层有 1 个节点(和一个 softmax 激活函数?从第 1 层到第 2 层)。
我需要使用此网络执行二进制分类。谢谢!
用函数 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)
这是一个示例代码:
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'])
我确实有 2 个输入 X 和 Y,输出 C 是单热编码 [0,1] 或 [1,0]。
X,Y(转置)矩阵的大小为2 * 320,C的大小为1 * 320。
我应该如何以这样的方式在 Keras 中编写网络:
<> 第 0 层:有 2 个输入(和 2 个节点)
<> 第 1 层有 4 个单元和一个从第 0 层到第 1 层的线性激活函数
<> 第 2 层有 1 个节点(和一个 softmax 激活函数?从第 1 层到第 2 层)。
我需要使用此网络执行二进制分类。谢谢!
用函数 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)
这是一个示例代码:
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'])