TensorFlow实现非线性回归

本文展示了如何使用TensorFlow实现非线性回归。通过构建一个包含10个神经元的单层隐藏层的神经网络,对由 y = x^2 + noise 数据生成的模型进行训练,以解决非线性问题。训练后的结果以图形形式呈现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用 y = x ^2 + noise 生成数据,并利用数据对一个简单的只具有单层隐层(10个神经元)的神经网络进行训练。输入输出个一个神经元。代码如下

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


os.environ["TF_CPP_MIN_LOG_LEVEL"] = '2'  # 只显示 warning 和 Error

x_data = np.linspace(0, 1, 200)[:, np.newaxis]  # np.newaxis表示在第二维度增加一维
noise = np.random.normal(0, 0.01, x_data.shape)  #高斯分布, 0 表示均值, 0.1 表示标准差 最后是shape
y_data = noise - np.square(x_data)

# 构建神经网络
# 1  10  1
# 输入层1个神经元
# 中间隐层10个神经元
# 输出层1个神经元

# 定义两个占位符
x = tf.placeholder(tf.float32, [None, 1], name='x')
y = tf.placeholder(tf.float32, [None, 1], name='y')

#
# 定义权值矩阵, 输入层与隐层之间的权值矩阵
input_2_hidden_w = tf.Variable(tf.truncated_normal([1,10]))
hidden_bias = tf.Variable(tf.zeros([1,10]))
hidden_out = tf.matmul(x,input_2_hidden_w) + hidden_bias
activation_hidden_out = tf.nn.tanh(hidden_out)

# 定义权值矩阵, 隐层与输出层之间的权值矩阵
hidden_2_output_w = tf.Variable(tf.truncated_normal([10,1]))
out_bias = tf.Variable(tf.zeros([1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值