DeepLearning / / 2022. 10. 31. 15:25

DeepLearning - keras initializer 종류

'''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)
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유