运用tensorflow进行数据拟合

运用tensorflow进行数据拟合

# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""


import numpy as np #导入多维数组操作库
import tensorflow as tf #引入tensorflow库

#data=np.genfromtxt('f:\milkdata.txt',delimiter=',')
#x_data=data[:,0]
#y_data=data[:,1]

x_data=np.genfromtxt("D:\mengniuchuli.txt",delimiter=" ")
y_data=np.genfromtxt("D:\mengniuchuli.txt",delimiter=" ")

#y=tf.add(tf.mul(a,tf.sin(tf.add(tf.mul(b,x_data*2*3.1415926/365),c))),d)

a = tf.Variable(0.1197)
b = tf.Variable(-0.541)
c = tf.Variable(7.634)
d = tf.Variable(3.096)
y = a * tf.sin(b * x_data/365*2*3.1415926 + c) +d #训练的函数


#opt = tf.train.GradientDescentOptimizer(0.5).minimize(loss)
#定义损失函数,定义优化器,训练器,再进行初始化
loss = tf.reduce_mean(tf.square(y - y_data))   
optimizer = tf.train.GradientDescentOptimizer(0.1)     #定义一个梯度下降法来进行训练优化器
train = optimizer.minimize(loss)    #训练最小代价函数,通过op来训练
init = tf.initialize_all_variables()    #初始化变量,如果设置了tf.Variable就需要初始在会话中运行一下
sess = tf.Session()  #创建一个会话session,在会话中使用option
sess.run(init)  #运行初始化

for step in range(0, 1000000):  #迭代1000000次
    sess.run(train)     #每次训练所给的训练集样本
    if step % 100 == 0:
        print(step,sess.run(a),sess.run(b),sess.run(c),sess.run(d),sess.run(loss))
sess.close()
spyder --reset

猜你喜欢

转载自blog.csdn.net/qq_45191169/article/details/109656338