zoukankan      html  css  js  c++  java
  • tensorflow 中 Cross Entropy算法理解

    关于tensorflow 中cross entropy 的 numpy实现

    import tensorflow as tf
    import numpy as np
    import os
    os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
    
    # Make up some testing data, need to be rank 2
    
    x = np.array([
            [0.,2.,1.],
            [0.,0.,2.]
            ])
    label = np.array([
            [0.,1.,0.],
            [0.,0.,1.]
            ])
    
    label2 = np.array([1,2])
    
    # Numpy part #
    def sigmoid(logits):
        return (1/(1+np.exp(-logits)))
    
    def softmax(logits):
        sf = np.exp(logits)
        sf = sf/np.sum(sf, axis=1).reshape(-1,1)
        return sf
    
    def cross_entropy2(softmax, labels):
        return -(labels * np.log(softmax) + (1- labels) * ( np.log(1- softmax)))
    
    def cross_entropy(softmax, labels):
        return -np.sum(labels * np.log(softmax),axis=1)
    
    numpy_sig = cross_entropy2( sigmoid(x), label )
    numpy_softmax = cross_entropy( softmax(x), label )
    print(softmax(x))
    print("my sigmoid_cross_entropy_with_logits is 
     %s 
     "%(numpy_sig))
    print("my softmax_cross_entropy_with_logits is 
     %s 
     "%(numpy_softmax))
    
    # Tensorflow part #
    
    g = tf.Graph()
    with g.as_default():
        tf_x = tf.constant(x)
        tf_label = tf.constant(label)
        tf_label2 = tf.constant(label2)
        tf_ret = tf.nn.sigmoid_cross_entropy_with_logits(logits= tf_x,labels=tf_label)
        tf_softmax = tf.nn.softmax_cross_entropy_with_logits(logits= tf_x,labels=tf_label)
        tf_softmax_2 = tf.nn.sparse_softmax_cross_entropy_with_logits(logits= tf_x,labels=tf_label2)
    
    with tf.Session(graph=g) as ss:
        r_sig,r_softmax,r_softmax_sparse = ss.run([tf_ret,tf_softmax,tf_softmax_2])
    
    print("tensorflow sigmoid_cross_entropy_with_logits is 
     %s 
     "%(r_sig))
    print("tensorflow softmax_cross_entropy_with_logits is 
     %s 
     "%(r_softmax))
    
    print("tensorflow sparse_softmax_cross_entropy_with_logits is 
     %s 
     "%(r_softmax_sparse))
  • 相关阅读:
    iOS中的HTTPS
    HTTPS抓包之Charles
    组件化开发的一些思考
    Xcode 调试技巧
    iOS崩溃日志分析
    iOS依赖库管理工具之Carthage
    13.类的关系总结
    12.组合(Composition)
    11.聚合(Aggregation)
    10.关联(Association)
  • 原文地址:https://www.cnblogs.com/kakamilan/p/7116332.html
Copyright © 2011-2022 走看看