NN八股

作者: satyrs_sh | 来源:发表于2020-03-03 13:40 被阅读0次
    • 1

    张量 Tensor(“add:0”,shape=(2,),dtype =float32 )
    计算图
    会话 with tf.Session() as sess:

    • 2权重矩阵的初始化
    tf.Variable(tf.random_normal([2,3],stddev =2,mean =0,seed =1)) //没有seed则每次随机生成的数字不同
    
    tf.truncated_normal()  //去掉离均值大于两个标准差的数字重新随机生成
    
    tf.random_uniform()  //平均分布
    
    tf.zeros  tf.ones  tf.fill([3,2],6) tf.constant([…])
    
    • 3神经网络

    分为4个过程:准备【import 常量定义、生成数据集】,前传 【定义输入、参数、输出】,反传【定义loss、train_step】,迭代【sess、初始化参数、循环】

    前向传播— 计算输出

    变量初始化: tf.global_variables_initializer()
    
    tf.placeholder(tf.float32,shape=(1,2)) // 喂一组数据,两个特征。多组,则shape=(None,2)
    
    sess.run(y,feed_dict={x:[[0.5,0.6]]}) //多组,[[],[],[],[]]
    

    反向传播— 优化参数训练模型所有参数使用梯度下降,使NN损失函数最小

    loss - 均方误差 tf.reduce_mean(tf.square(y_-y))
    
    train_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss)
    
    train_step = tf.train.MomentumOptimizer(learning_rate,momentum).minimize(loss)
    
    train_step = tf.train.AdamOptimizer(learning_rate).minimize(loss)
    
    • 4 BATCH_SIZE = 8 //一次喂入的数据

    • 5 随机

    rng = np.random.RandomState(seed)
    
    X = rng.rand(32,2)
    
    • 6 训练模型
    STEPS =3000
    
    for i in range(STEPS):
    
        start = (i*BATCH_SIZE )%32
    
        end = start + BATCH_SIZE
    
        sess.run(train_step,feed_dict = {x:X[start:end],y_:Y[start:end]})
    
        if i%500==0
    
            total_loss = sess.run(loss,feed_dict={x:X,y_:Y})
    

    相关文章

      网友评论

          本文标题:NN八股

          本文链接:https://www.haomeiwen.com/subject/iuyclhtx.html