美文网首页我爱编程
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