用tensorflow搭建简单的神经网络

import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
import data_processing


data = data_processing.load_data()
#new_data = data_processing.convert2onehot(data) #new_data就是one_hot完成的数据

#new_data = new_data.values.astype(np.float32)       # change to numpy array and float32
data = data.values.astype(np.float32)

#np.random.shuffle(new_data)#只对数据的行之间进行洗牌,每一行中列之间的位置是不变的
np.random.shuffle(data)

#sep = int(0.7*len(new_data))
#train_data = new_data[:sep]                         # training data (70%)
#test_data = new_data[sep:]                          # test data (30%)

sep = int(0.7*len(data))
train_data = data[:sep]                         # training data (70%)
test_data = data[sep:]

#tf_input = tf.placeholder(tf.float32, [None, 22], "input")#占地方用的
#tfx = tf_input[:, :20]
#tfy = tf_input[:, 20:]
tf_input = tf.placeholder(tf.float32, [None, 3], "input")#占地方用的
tfx = tf_input[:, :2]
tfy = tf_input[:, 2:]

#w1=tf.Variable(tf.random_normal([20,128],stddev=1,seed=1))#列的个数就代表神经原的个数
#w2=tf.Variable(tf.random_normal([128,2],stddev=1,seed=1))#列的个数代表输出的个数
#a=tf.matmul(tfx,w1)
#y=tf.matmul(a,w2)
w1=tf.Variable(tf.random_normal([2,128],stddev=1,seed=1))#列的个数就代表神经原的个数
w2=tf.Variable(tf.random_normal([128,1],stddev=1,seed=1))#列的个数代表输出的个数
a=tf.matmul(tfx,w1)
y=tf.matmul(a,w2)

#loss = tf.losses.softmax_cross_entropy(onehot_labels=tfy, logits=y)
loss=tf.reduce_mean(tf.square(y-tfy))#利用均方误差计算loss(相当于一个损失函数)
train_op=tf.train.GradientDescentOptimizer(0.001).minimize(loss)#0.001是学习率
#train_step=tf.train.MomentumOptimizer(0.001).minimize(loss)#可使用这三个优化方法,可以试一下哪个效果比较好
#train_op=tf.train.AdadeltaOptimizer(0.001).minimize(loss)
#train_op = tf.train.GradientDescentOptimizer(learning_rate=0.01)

with tf.Session() as sess:
    init_op=tf.global_variables_initializer()#初始化所有参数
    sess.run(init_op)

    #训练模型
    steps=60000
    for i in range(steps):
        batch_index = np.random.randint(len(train_data), size=16)#batch_index表示一下子喂给神经网络多少的数据
        sess.run(train_op, {tf_input: train_data[batch_index]})

        if i%500==0:
            total_loss=sess.run(loss,feed_dict={tf_input: test_data})
            print("after %d training steps,loss on all data is %g"%(i,total_loss))

搭建了一个简单的神经网络,并且计算loss函数。未完待续。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值