from tensorflow.keras.preprocessing.sequence import pad_sequences from tensorflow.keras.layers import Dense, Embedding, Flatten, Dropout from tensorflow.keras.optimizers import Adam from tensorflow.keras.models import Sequential from tqdm import tqdm import numpy as np import csv dataset = "dataset.csv" inp_len = 32 X = [] y = [] with open(dataset, 'r') as f: csv_reader = csv.reader(f) for row in tqdm(csv_reader): if row == []: continue label = int(row[0]) text = row[1] text = [ord(char) for char in text] X.append(text) y.append(label) X = np.array(pad_sequences(X, maxlen=inp_len, padding='post')) y = np.array(y) model = Sequential() model.add(Embedding(input_dim=1500, output_dim=128, input_length=inp_len)) model.add(Flatten()) model.add(Dropout(0.2)) model.add(Dense(512, activation="tanh")) model.add(Dropout(0.5)) model.add(Dense(200, activation="selu")) model.add(Dense(128, activation="softplus")) model.add(Dense(1, activation="softplus")) model.compile(optimizer=Adam(learning_rate=0.001), loss="mse", metrics=["accuracy",]) model.fit(X, y, epochs=2, batch_size=4, workers=4, use_multiprocessing=True) model.save("net.h5")