더북(TheBook)

간단한 파이썬 클래스 NavieDense를 구현하여 2개의 텐서플로 변수 Wb를 만들고 __call__() 메서드에서 앞서 언급한 변환을 적용해 보겠습니다.

import tensorflow as tf
  
class NaiveDense:
    def __init__(self, input_size, output_size, activation):
        self.activation = activation 

        w_shape = (input_size, output_size) 
        w_initial_value = tf.random.uniform(w_shape, minval=0, maxval=1e-1)
        self.W = tf.Variable(w_initial_value)  

        b_shape = (output_size,) 
        b_initial_value = tf.zeros(b_shape)
        self.b = tf.Variable(b_initial_value)  

    def __call__(self, inputs): 
        return self.activation(tf.matmul(inputs, self.W) + self.b)  

    @property
    def weights(self): 
        return [self.W, self.b]

랜덤한 값으로 초기화된 (input_size, output_size) 크기의 행렬 W를 만듭니다.

0으로 초기화된 (output_size,) 크기의 벡터 b를 만듭니다.

정방향 패스를 수행합니다.

층의 가중치를 추출하기 위한 메서드

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.