# 输入一个 x 会计算出 y 值    y 是预测值,如果与 真的 y 值(y_data)接近就成功了 

import tensorflow as tf
import numpy as np
# py 的画图工具
import matplotlib.pyplot as plt # 用 numpy 生成个 200 个属性点 从 -0.5 到 0.5 间平均生成 200 个点
#x_data = np.linspace(-0.5, 0.5, 200) # 这只是生成了一维的数组
# 用下边这句可以生成二维数组
x_data = np.linspace(-0.5, 0.5, 200)[:, np.newaxis] # 生成随机值,和 x_data 的形状是一样的 ( 噪点 )
noise = np.random.normal(0, 0.02, x_data.shape) # x_data 的平方+随机数
y_data = np.square( x_data ) + noise # 定义二个占位符
x = tf.placeholder( tf.float32, [None, 1] ) # [None, 1] 行不定,列只有一列
y = tf.placeholder( tf.float32, [None, 1] ) # 构建神经网络中间层 一行十列
Weights_L1 = tf.Variable( tf.random_normal([1, 10]))
biases_L1 = tf.Variable( tf.zeros([1, 10]) ) # 求出信号的总和 矩阵相乘,
Wx_plus_b_L1 = tf.matmul(x, Weights_L1) + biases_L1
# 中间层的输出
L1 = tf.nn.tanh( Wx_plus_b_L1 ) # 输出层 十行一列
Weights_L2 = tf.Variable( tf.random.normal([10, 1]))
biases_L2 = tf.Variable( tf.zeros([1, 1]) )
# 求出信号的总和 矩阵相乘,
Wx_plus_b_L2 = tf.matmul(L1, Weights_L2) + biases_L2
# 得出最后的预测结果
pred = tf.nn.tanh( Wx_plus_b_L2 ) # 二次代价函数
loss = tf.reduce_mean( tf.square(y - pred) ) # 梯度下降法的优化器 最小化代价函数
train = tf.train.GradientDescentOptimizer( 0.2 ).minimize( loss ) with tf.Session() as sess:
# 初始化变量
sess.run( tf.global_variables_initializer() )
# 训练 2000 次
for _ in range( 2000 ):
sess.run( train, feed_dict={x:x_data, y:y_data} ) # 得到预测值
value = sess.run( pred, feed_dict={x:x_data} )
# 用画图形式展现 plt.figure()
plt.scatter(x_data, y_data)
plt.plot(x_data, value, 'r-', lw=5)
plt.show()

  

tensorflow 使用 4 非线性回归的更多相关文章

  1. TensorFlow(三):非线性回归

    import tensorflow as tf import numpy as np import matplotlib.pyplot as plt # 非线性回归 # 使用numpy生成200个随机 ...

  2. Tensorflow学习教程------非线性回归

    自己搭建神经网络求解非线性回归系数 代码 #coding:utf-8 import tensorflow as tf import numpy as np import matplotlib.pypl ...

  3. tensorflow非线性回归(03-1)

    这个程序为简单的三层结构组成:输入层.中间层.输出层 要理清各层间变量个数 import numpy as np import matplotlib.pyplot as plt import tens ...

  4. TensorFlow.NET机器学习入门【3】采用神经网络实现非线性回归

    上一篇文章我们介绍的线性模型的求解,但有很多模型是非线性的,比如: 这里表示有两个输入,一个输出. 现在我们已经不能采用y=ax+b的形式去定义一个函数了,我们只能知道输入变量的数量,但不知道某个变量 ...

  5. 【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

    第二课 传统神经网络 <深度学习>整体结构: 线性回归 -> 神经网络 -> 卷积神经网络(CNN)-> 循环神经网络(RNN)- LSTM 目标分类(人脸识别,物品识别 ...

  6. 机器学习与Tensorflow(2)——神经网络及Tensorflow实现

    神经网络算法以及Tensorflow的实现 一.多层向前神经网络(Multilayer Feed-Forward Neural Network) 多层向前神经网络由三部分组成:输入层(input la ...

  7. 截图:【炼数成金】深度学习框架Tensorflow学习与应用

    创建图.启动图 Shift+Tab Tab 变量介绍: F etch Feed 简单的模型构造 :线性回归 MNIST数据集 Softmax函数 非线性回归神经网络   MINIST数据集分类器简单版 ...

  8. Tensorflow目录

    0.Tensorflow安装 1.创建会话,启动会话 2.变量 3.Fech_feed 4.线性回归 5.非线性回归 6.MNIST数据集简单分类 7.交叉熵 8.Dropout 9.正则化 10.优 ...

  9. tensorflow学习框架(炼数成金网络版学习记录)

    chapter1 #变量 import tensorflow as tf x = tf.Variable([1,2]) a = tf.constant([3,3]) #增加一个减法op sub = t ...

随机推荐

  1. IDEA中 GIT与SVN版本控制插件的切换

    https://www.cnblogs.com/yccmelody/p/7794220.html

  2. 2018-2019 网络对抗技术 20165231 Exp4 恶意代码分析

    实验目标 1.是监控你自己系统的运行状态,看有没有可疑的程序在运行. 2.是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysinternals,systrac ...

  3. Revit二次开发封装族的替代方法

    使用草图平面:

  4. 【easy】101. Symmetric Tree

    判断一棵二叉树是否对称 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left ...

  5. 高德JSAPI获取当前所在位置的经度纬度

    这是在浏览器中的效果: 控制台打印出来的就是经度纬度的值 代码如下: <!doctype html> <html> <head> <meta charset= ...

  6. 解决springboot启动失败问题:Unable to start embedded container;

    将一个springboot项目导入到eclipse后,启动时报错Unable to start embedded container,以下时全部错误信息: Application startup fa ...

  7. nodejs adm-zip 解压文件 中文文件名乱码 问题解决

    修改需要使用到iconv-lite包 (npm安装即可),修改 zipEntry.js 文件中的 entryName 方法 var iconv = require('iconv-lite'); var ...

  8. IntelliJ IDEA重启Tomcat

  9. maven与eclipse连接的配置

    1.修改本地仓库位置 maven从中心仓库下载的文件一般默认放在本地用户文件加下的.m2/repository文件夹中,修改则需要找到所下载的maven文件夹下的conf文件夹下的setting.xm ...

  10. python3 迭代器(Iterator)和生成器(generator)

    一.迭代器定义: 迭代是访问集合元素的一种方式,迭代器是一个可以记住遍历位置的对象: 集合数据类型如list.dict.str等是Iterable但不是Iterator,不过可以通过iter()函数获 ...