inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

TensorFlow 2.0으로 배우는 딥러닝 입문

tf.nn.softmax_cross_entropy_with_logits 질문..

470

­imLim

작성한 질문수 1

0

ANN 강의 중 cross_entropy 정의를 

class ANN_model(tf.keras.Model):

    

    def __init__(self):

        super(ANN_model, self).__init__()

        self.hidden_layer_1 = tf.keras.layers.Dense(hidden1_size, activation = 'relu',

                                                   kernel_initializer = random_normal_initializer(),

                                                   bias_initializer = random_normal_initializer())

        

        self.hidden_layer_2 = tf.keras.layers.Dense(hidden2_size, activation = 'relu',

                                                   kernel_initializer = random_normal_initializer(),

                                                   bias_initializer = random_normal_initializer())

        

        self.output_layer = tf.keras.layers.Dense(output_size, activation = None,

                                                   kernel_initializer = random_normal_initializer(),

                                                   bias_initializer = random_normal_initializer())

        

    def call(self, x):

        

        H1_output = self.hidden_layer_1(x)

        H2_output = self.hidden_layer_2(H1_output)

        logits = self.output_layer(H2_output)

        

        return logits

    

@tf.function

def cross_entropy(logits, y):

    return tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits = logits, labels = y))

     

하시더라구요. 저도 이 코드를 따라서 실행하니 잘 수행되었습니다.

그런데 이전 강의와 같이

def call(self, x):

        

        H1_output = self.hidden_layer_1(x)

        H2_output = self.hidden_layer_2(H1_output)

        logits = self.output_layer(H2_output)

        

        return tf.nn.softmax(logits)

    

@tf.function

def cross_entropy(y_pred, y):

   reutrn  tf.reduce_mean(-tf.reduce_sum(y * tf.math.log(y_pred), axis = [1]))

으로 수행하니 loss가 nan이 뜨더라구요.

 tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits = logits, labels = y))

와  tf.reduce_mean(-tf.reduce_sum(y * tf.math.log(y_pred), axis = [1]))는 같은 코드가 아닌가요?

머신러닝 배워볼래요? tensorflow 딥러닝

답변 1

0

AISchool

안녕하세요~. 반갑습니다.

tf.nn.softmax_cross_entropy_with_logits API가 좀더 최적화 되어 있어서 완전 동일한 코드라고 할순없지만 두 코드가 의미하는 바는 동일한데요.
(tf.nn.softmax_cross_entropy_with_logits의 정확한 구현은 아래 코드를 참조하세요~.)

https://github.com/tensorflow/tensorflow/blob/v2.5.0/tensorflow/python/ops/nn_ops.py#L3851

loss가 NaN이 뜨는 것은 조금 이상한것 같네요. 직접 cross entropy를 계산하는 코드에서 learning_rate를 좀더 낮춰서 진행해보시겠어요?

감사합니다.

22강 코드 call()메서드 is_training -> model(x,False)로 호출시 밸류에러 참고

0

49

1

선형 회귀 모델에 대해서 질문 있습니다

0

258

2

tf.keras.model.reset_states()

0

746

2

[질문]colab환경에서 텐서보드(TensorBoard)를 이용해서 학습과정 시각화(Visualization)하기강의 관련 질문

0

505

2

[질문]colab환경에서 tf.train.CheckpointManager API를 이용해서 파라미터 저장하고 불러오기 실행에 대한 질문

0

289

2

colab에서 구동 가능한 char-rnn 코드 관련 질문

0

223

1

안녕하세요 파이썬이랑 tensorflow 정확한 버전 알수있을까요?

0

253

1

colab 환경에서 Autoencoder 구현하였으나 결과가 보이지 않는 분들 참고사항

0

211

1

Mnist 에 keras를 통해 softmax를 활용한 regerssion error 발생

0

2100

2

GRU 리셋게이트, 포겟게이트 질문

0

261

1

ANN 구현

0

349

1

char-rnn 코랩 에러 ... 못보나요,, cpus는 너무 느려서

0

590

1

ANN으로 Mnist 숫자분류기 코드질문

0

294

1

ppt 12p 질문

0

383

1

keras에서 이미 정의된 모델을 가져와 학습할 경우

0

654

1

모델 코드 질문

0

370

1

코드 질문

0

281

1

ppt 10p

0

386

1

ppt 13p 추가 질문

0

259

1

ppt 9p 추가 질문

0

266

1

ppt 5p 질문

0

323

1

ppt 9p 질문

0

284

1

vanishing gradient

0

278

1

TensorFlow 2.0을 이용한 CIFAR-10 이미지 분류를 위한 CNN 구현 질문

0

263

1