ufris
tensorflow를 이용해 softmax cross entropy를 직접 구현을 해보면 output = np.array([[0.12,0.546,0.02], [0.054,0.23,0.0003]]) Y = np.array([[0,1,0],[1,0,0]]) hypothesis = tf.nn.softmax(output) # [[0.29103963 0.44561682 0.26334355] # [0.31845567 0.37973867 0.30180566]], # Cross entropy cost/loss cost = tf.reduce_mean(-tf.reduce_sum(Y * tf.math.log(hypothesis), axis=1)) # Y * tf.math.log(hypothesis) = [[-0. -0.80..
논문 링크 batch 단위로 학습을 하면서 마지막 추론 과정에서 데이터마다 잘 맞추는 데이터, 잘 맞추지 못하는 데이터, 혼동이 되는 데이터 등등 여러가지 경우가 있습니다 위의 논문에서는 혼동이 되는 데이터(예 : 말 이미지를 사슴, 말, 소라고 추론하는 경우)는 아직 학습이 더 필요한 데이터이므로 계속 학습을 해야하고 잘 맞추는 데이터(예 : 말 이미지를 계속 말이라고 추론하는 경우)는 너무 쉬운 데이터이고, 잘 맞추지 못하는 데이터(예 : 말 이미지를 계속 사슴이라고 추론하는 경우)는 너무 어려운 데이터이므로 학습에 도움이 되지 않는 데이터라고 설명을 합니다 그래서 위와 같은 데이터는 학습에서 제외를 하고 혼동이 되는 데이터가 현재 학습에 필요한 데이터이기 때문에 해당 데이터들로만 학습을 진행해야한다..
tensorflow에서 ckpt를 저장하면 weigh(.ckpt)과 model graph(.meta)가 저장되는데 test 시에 사용했던 model을 다시 코드로 작성하지 않고 import_meta_graph를 통해 model을 생성할 수 있습니다 그렇게 되면 placeholder 부분을 어떻게 설정할지 감이 잡히지 않았는데 get_tensor_by_name을 통해 placeholder 부분을 불러올 수 있습니다 tf.reset_default_graph() sess = tf.Session() sess.run(tf.global_variables_initializer()) # import_meta_graph를 통해 model load saver = tf.train.import_meta_graph(os.pat..