'''Keras 코드 (초기값 설정) '''
initializer = tf.keras.initializers.RandomNormal(mean=0,stddev=1,) #정규분포에 따라 텐서를 생성하는 초기값 설정
initializer = tf.keras.initializers.RandomUniform(minival=0,maxval=1,) #균등분포에 따라 텐서를 생성하는 초기값 설정
initializer = tf.keras.initializers.TruncatedNormal(mean=0, stddev=1,) # 절단된 정규분포에 따라 텐서를 생성하는 초기값 설정
initializer = tf.keras.initializers.Zeros() # 모든 값이 0인 텐서를 생성하는 초기값 설정
initializer = tf.keras.initializers.Ones() # 모든 값이 1인 텐서를 생성하는 초기값 설정
initializer = tf.keras.initializers.GlorotNoraml() # Glorot 정규분포 초기값 설정기, Xavier 정규분포 초기값 설정
initializer = tf.keras.initializers.GlorotUniform() #Glorot 균등분포 초기값 설정기, Xavier 균등분포 초기값 설정
initializer = tf.keras.initializers.HeNormal() # He 정규분포 초기값 설정
initializer = tf.keras.initializers.HeUniform() # He 균등분포 분산 스케일링 초기값 설정
ip = Input(shape=(2,))
n= Dense(2, activation='sigmoid')(ip)
n = Dense(1, activation='linear')(n)
model = Model(inputs=ip, outputs=n)
model = tf.keras.layers.Dense(3, kernel_initializer= initializer)
model.add(Dense(64, kernel_initializer='random_normal',mean=0,stddev=1,))
from tensorflow.keras import initializers
import matplotlib.pyplot as plt
def xor_practice(initializer, activation, epochs, optimizer):
xor = {'x1':[0,0,1,1], 'x2':[0,1,0,1], 'y':[0,1,1,0]}
XOR = pd.DataFrame(xor)
X = XOR.drop('y', axis=1)
y = XOR.y
initializer = initializers.RandomNormal()
ip = Input(shape=(2,))
n = Dense(2, activation=activation, kernel_initializer=initializer)(ip)
n = Dense(1, activation='linear', kernel_initializer=initializer)(n)
model = Model(inputs=ip, outputs=n)
model.compile(loss='mse', optimizer=optimizer, metrics='accuracy')
hist = model.fit(X, y, epochs=epochs, verbose=0)
fig, loss_ax = plt.subplots()
loss_ax.plot(hist.history['loss'], 'y', label='train loss', c='blue')
loss_ax.plot(hist.history['accuracy'], 'y', label='train accuracy', c='red')
plt.plot(range(epochs), [0.15 for _ in range(epochs)], linestyle='--')
loss_ax.set_xlabel('epoch')
loss_ax.set_ylabel('loss')
loss_ax.legend(loc='upper left')
loss_ax.set_ylim(0, 1)
plt.show()
return model.predict(X)
'DeepLearning' 카테고리의 다른 글
DeepLearning - keras.initializers 예제 (0) | 2022.11.01 |
---|---|
DeepLearning - 컨볼루션 신경망 다중 클래스 분류 (0) | 2022.10.31 |
DeepLearning - tensorflow Xavier Initialization (0) | 2022.10.31 |
DeepLearning - 신경망 결합 concatenate (0) | 2022.10.31 |
DeepLearning - Tensorflow 신경망 원리 (0) | 2022.10.30 |