tensorflow 练习

线性回归

import tensorflow as tf
W=tf.Variable(tf.zeros([2,1]),name="weights")
b=tf.Variable(0.,name="bias")
def inference(X):
    return tf.matmul(X,W)+b
def loss(X,Y):
    Y_predicted=inference(X)
    return tf.reduce_sum(tf.squared_difference(Y,Y_predicted))
def inputs():
    weights_age=[[84,46],[73,20],[65,52],[70,30]]
    blood_fat_content=[354,190,405,263]
    return tf.to_float(weights_age),tf.to_float(blood_fat_content)
def train(total_loss):
    learning_rate=0.000001;
    return tf.train.GradientDescentOptimizer(learning_rate).minimize(total_loss)
def evaluate(sess,X,Y):
    print sess.run(inference([[80.,25.]]))
with tf.Session() as sess:
    tf.global_variables_initializer().run()
    X,Y=inputs()
    total_loss=loss(X,Y)
    train_op=train(total_loss)
    coord=tf.train.Coordinator()
    threads=tf.train.start_queue_runners(sess=sess,coord=coord)
    training_steps=1000
    for step in range(training_steps):
        sess.run([train_op])
        if step%100==0:
            print "loss:",sess.run([total_loss])
    evaluate(sess,X,Y)
    coord.request_stop()
    coord.join(threads)
    sess.close()
import tensorflow as tf   
from tensorflow.examples.tutorials.mnist import input_data
mnist=input_data.read_data_sets("MNIST_data/",one_hot=True)
sess=tf.InteractiveSession()
x=tf.placeholder(tf.float32,[None,784])
W=tf.Variable(tf.zeros([784,10]))
b=tf.Variable(tf.zeros([10]))
y=tf.nn.softmax(tf.matmul(x,W)+b)
y_=tf.placeholder(tf.float32,[None,10])
cross_entropy=tf.reduce_mean(-tf.reduce_sum(y_*tf.log(y),reduction_indices=[1]))
train_step=tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
tf.global_variables_initializer().run()
for i in range(1000):
    batch_xs,batch_ys=mnist.train.next_batch(100)
    train_step.run({x:batch_xs,y_:batch_ys})
correct_prediction=tf.equal(tf.argmax(y,1),tf.argmax(y_,1))
accuracy=tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
print(accuracy.eval({x:mnist.test.images,y_:mnist.test.labels}))

此处可能报找不到global_variables_initializer的错误,这个是由于你的tensorflow的版本过于低的问题导致的。

可以到https://github.com/tensorflow/tensorflow下载相应的.whl 用命令 sudo pip install XXXX.whl进行安装
这里写图片描述

import tensorflow as tf
from numpy.random import RandomState
batch_size = 8
x = tf.placeholder(tf.float32, shape=(None, 2), name="x-input")
y_ = tf.placeholder(tf.float32, shape=(None, 1), name='y-input')
w1= tf.Variable(tf.random_normal([2, 1], stddev=1, seed=1))
y = tf.matmul(x, w1)
# 定义损失函数使得预测少了的损失大,于是模型应该偏向多的方向预测。
loss_less = 10
loss_more = 1
loss = tf.reduce_sum(tf.where(tf.greater(y, y_), (y - y_) * loss_more, (y_ - y) * loss_less))
train_step = tf.train.AdamOptimizer(0.001).minimize(loss)
rdm = RandomState(1)
X = rdm.rand(128,2)
Y = [[x1+x2+(rdm.rand()/10.0-0.05)] for (x1, x2) in X]
with tf.Session() as sess:
    tf.global_variables_initializer().run()
    STEPS = 5000
    for i in range(STEPS):
        start = (i*batch_size) % 128
        end = (i*batch_size) % 128 + batch_size
        sess.run(train_step, feed_dict={x: X[start:end], y_: Y[start:end]})
        if i % 1000 == 0:
            print("After %d training step(s), w1 is: " % (i))
            print sess.run(w1), "\n"
    print "Final w1 is: \n", sess.run(w1)

简单的保存文件

import tensorflow as tf
v1=tf.Variable(tf.constant(1.0,shape=[1]),name="v1")
v2=tf.Variable(tf.constant(1.0,shape=[1]),name="v2")
result=v1+v2
init_op=tf.global_variables_initializer()
saver=tf.train.Saver()
with tf.Session()  as sess:
    sess.run(init_op)
    saver.save(sess,"model.ckpt")
在使用TensorFlow 2进行线性回归练习时,我们首先需要导入所需的库,包括TensorFlow和NumPy。 接下来,我们可以定义输入数据和目标变量。假设我们有一组输入数据X和对应的目标变量y,我们可以使用NumPy创建这些数据。 然后,我们需要创建模型。在线性回归中,模型是一个线性方程,可以通过TensorFlow的密集层(Dense)来实现。我们可以使用Sequential模型来创建一个简单的线性模型,并添加一个密集层。 接下来,我们需要定义优化器和损失函数。对于线性回归问题,我们可以使用均方误差(Mean Squared Error, MSE)作为损失函数,并选择合适的优化器,如随机梯度下降(SGD)。 然后,我们可以使用compile()方法编译模型,指定优化器和损失函数。编译模型后,我们可以使用fit()方法来拟合模型。通过指定输入数据和目标变量,以及训练的批次大小和训练的迭代次数,可以在训练集上训练模型。 在训练完模型后,我们可以使用evaluate()方法评估模型在测试集上的性能。 最后,我们可以使用predict()方法对新的数据进行预测。通过将新的输入数据传递给predict()方法,可以得到对应的目标变量的预测值。 综上所述,使用TensorFlow 2进行线性回归练习可以分为以下步骤:导入库、定义输入数据和目标变量、创建模型、定义优化器和损失函数、编译模型、拟合模型、评估模型性能、预测新的数据。通过完成这些步骤,我们可以进行线性回归练习,并得到模型在给定数据上的预测结果。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值