美文网首页我爱编程
TensorFlow学习中遇到的坑

TensorFlow学习中遇到的坑

作者: 圣_狒司机 | 来源:发表于2018-07-24 16:35 被阅读66次

    1. 图的初始化

    一般是这样写:

    x  = tf.placeholder(tf.float32,shape=[None,2])
    y_ = tf.placeholder(tf.float32,shape=[None,1]) 
    

    在sklearn中y标签一般是是一维数组,是在TensorFlow中y_被定义为[None,1],也就是不限长度的一维数组集合,你在用numpy创造数据集时就要改动一下数组形状,可以这样: reshape((-1,1)),-1 表示不限长。

    2. 尽量用项目方法

    │  __init__.py
    │  config.py
    │  tf3.py
    

    不要在一个文件里写所有的东西,尽量分开在一个包里,各司其职,配置的参数可以写在config.py里,用 from config import * 导入。

    3. 简化版的二层神经网络

    import tensorflow as tf
    import numpy as np
    from config import *
    
    #1 数据集和图
    X = np.random.random((32,2))
    Y = np.array([int(sum(x)>1) for x in X]).reshape((-1,1))
    
    x  = tf.placeholder(tf.float32,shape=[None,2])
    y_ = tf.placeholder(tf.float32,shape=[None,1]) 
    w1 = tf.Variable(tf.random_normal([2,3],stddev=1,seed=1))
    w2 = tf.Variable(tf.random_normal([3,1],stddev=1,seed=1))
    a = tf.matmul(x,w1)
    y = tf.matmul(a,w2)
    
    #2 定义损失函数和反向传播
    
    loss = tf.reduce_mean(tf.square(y-y_))
    train_step = tf.train.GradientDescentOptimizer(0.001).minimize(loss)
    
    #3 生成会话
    with tf.Session() as sess:
        init_op = tf.global_variables_initializer()
        sess.run(init_op)
    
        for i in range(STEPS):
            sess.run(train_step,feed_dict={x:X,y_:Y})
        print(sess.run(w1))
    

    神经网络算法都很慢,一般是过算过几十轮就输出一组东西表示我还活着没有死机,可是这种检测方法让代码更难懂了,所以在学习TensorFlow框架事时不如不要。

    相关文章

      网友评论

        本文标题:TensorFlow学习中遇到的坑

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