54 lines
1.2 KiB
Python
54 lines
1.2 KiB
Python
|
import os
|
||
|
|
||
|
os.environ["TF_ENABLE_ONEDNN_OPTS"] = "0"
|
||
|
|
||
|
from keras.models import Sequential
|
||
|
from keras.layers import BatchNormalization, Dropout, Dense, Flatten, Conv1D
|
||
|
from keras.optimizers import Adam
|
||
|
import pandas as pd
|
||
|
|
||
|
|
||
|
def main():
|
||
|
X_train = pd.read_csv("data/X_train.csv")
|
||
|
y_train = pd.read_csv("data/y_train.csv")
|
||
|
|
||
|
X_train = X_train.to_numpy()
|
||
|
y_train = y_train.to_numpy()
|
||
|
|
||
|
X_train = X_train.reshape(X_train.shape[0], X_train.shape[1], 1)
|
||
|
|
||
|
model = Sequential(
|
||
|
[
|
||
|
Conv1D(32, 2, activation="relu", input_shape=X_train[0].shape),
|
||
|
BatchNormalization(),
|
||
|
Dropout(0.2),
|
||
|
Conv1D(64, 2, activation="relu"),
|
||
|
BatchNormalization(),
|
||
|
Dropout(0.5),
|
||
|
Flatten(),
|
||
|
Dense(64, activation="relu"),
|
||
|
Dropout(0.5),
|
||
|
Dense(1, activation="sigmoid"),
|
||
|
]
|
||
|
)
|
||
|
|
||
|
model.compile(
|
||
|
optimizer=Adam(learning_rate=1e-3),
|
||
|
loss="binary_crossentropy",
|
||
|
metrics=["accuracy"],
|
||
|
)
|
||
|
|
||
|
model.fit(
|
||
|
X_train,
|
||
|
y_train,
|
||
|
epochs=5,
|
||
|
verbose=1,
|
||
|
)
|
||
|
|
||
|
os.makedirs("model", exist_ok=True)
|
||
|
model.save("model/model.keras")
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|