Files
PSO/xor.py
jung-geun 7d22ededc7 23-07-12
xor iris 수치 교정
파티클의 분포 조정 가능하게 수정
random 시드 추출
2023-07-12 05:03:18 +09:00

78 lines
1.4 KiB
Python

# %%
import os
import sys
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "2"
import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from tensorflow.keras.layers import Dense
from tensorflow.keras.models import Sequential
from pso import Optimizer
def get_data():
x = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
y = np.array([[0], [1], [1], [0]])
return x, y
def make_model():
model = Sequential()
model.add(layers.Dense(2, activation="sigmoid", input_shape=(2,)))
model.add(layers.Dense(1, activation="sigmoid"))
return model
# %%
model = make_model()
x_test, y_test = get_data()
loss = [
"mean_squared_error",
"mean_squared_logarithmic_error",
"binary_crossentropy",
"categorical_crossentropy",
"sparse_categorical_crossentropy",
"kullback_leibler_divergence",
"poisson",
"cosine_similarity",
"log_cosh",
"huber_loss",
"mean_absolute_error",
"mean_absolute_percentage_error",
]
pso_xor = Optimizer(
model,
loss=loss[0],
n_particles=50,
c0=0.35,
c1=0.8,
w_min=0.6,
w_max=1.2,
negative_swarm=0.1,
mutation_swarm=0.2,
particle_min=-3,
particle_max=3,
)
best_score = pso_xor.fit(
x_test,
y_test,
epochs=200,
save=True,
save_path="./result/xor",
renewal="acc",
empirical_balance=False,
Dispersion=False,
check_point=25,
)
print("Done!")
sys.exit(0)
# %%