tensorflow实现二维平面模拟三维数据

#!/bin/bash
# -*-coding=utf-8-*-
import re
import os
import sys
import numpy as np
import tensorflow as tf

'''
    程序生成了一些三维数据, 然后用一个平面拟合它.
'''
if __name__ == '__main__':

    x_data = np.float32(np.random.rand(2, 100))
    y_data = np.dot([0.100, 0.200], x_data) + 0.300

    # 构造一个线性模型
    #
    b = tf.Variable(tf.zeros([1]))
    W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))
    y = tf.matmul(W, x_data) + b

    # 最小化方差
    loss = tf.reduce_mean(tf.square(y - y_data))
    optimizer = tf.train.GradientDescentOptimizer(0.5)
    train = optimizer.minimize(loss)

    # 初始化变量
    init = tf.initialize_all_variables()

    # 启动图 (graph)
    with tf.Session() as sess:
        sess.run(init)
        # 拟合平面
        for step in range(0, 201):
            sess.run(train)
            if step % 20 == 0:
                print(step, sess.run(W), sess.run(b))
    pass

运行结果:

0 [[-0.17184146  0.86964405]] [ 0.1381081]
20 [[ 0.08097319  0.36775881]] [ 0.21781394]
40 [[ 0.10813832  0.2485593 ]] [ 0.26939642]
60 [[ 0.10546865  0.2152364 ]] [ 0.28894189]
80 [[ 0.10238092  0.20503291]] [ 0.29606038]
100 [[ 0.10091752  0.20171218]] [ 0.29860607]
120 [[ 0.10033666  0.20059179]] [ 0.29950845]
140 [[ 0.10012084  0.20020625]] [ 0.29982695]
160 [[ 0.10004292  0.20007218]] [ 0.29993913]
180 [[ 0.10001516  0.20002531]] [ 0.29997858]
200 [[ 0.10000535  0.2000089 ]] [ 0.29999247]
最佳拟合结果 W: [[0.100  0.200]], b: [0.300]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

两只橙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值