[吃药深度学习随笔] 练习:训练二次方程的参数

import tensorflow as tf
import numpy as np

#训练二次函数的参数
#二次函数: y = ax^2 + bx +c

SEED = 12345
#ABC参数
pA = 2
pB = 5
pC = 100

rng = np.random.RandomState(SEED)

X = rng.rand(320, 1)
#定义一个a=2 b=5 c=10的二次方程
Y = [[float(pA * pow(i, 2) + pB * i + pC)] for i in X]
print ("X:\n", X)
print ("Y:\n", Y)

#定义神经网络的输入、参数和输出
x = tf.placeholder(tf.float32, shape=(None, 1))
y = tf.placeholder(tf.float32, shape=(None, 1))

A = tf.Variable(tf.random_normal([1, 1]))
B = tf.Variable(tf.random_normal([1, 1]))
C = tf.Variable(tf.random_normal([1, 1]))

r1 = tf.matmul(pow(x, 2), A) + tf.matmul(x, B) + C

#损失函数
loss = tf.reduce_mean(tf.reduce_sum(tf.square(r1 - y)))

#学习步骤
train_step = tf.train.GradientDescentOptimizer(0.001).minimize(loss)

#生成会话
with tf.Session() as sess:
    init_op = tf.global_variables_initializer()
    sess.run(init_op)
    for i in range(10000):
        index = i % 320
        sess.run(train_step, feed_dict={x: X, y: Y})
        if i % 50 == 0:
            total_loss = sess.run(loss,feed_dict={x: X, y: Y})
            print (total_loss)
    print("A:\n", sess.run(A))
    print("B:\n", sess.run(B))
    print("C:\n", sess.run(C))

最终得到结果:

A:
 [[1.9997427]]
B:
 [[5.0002966]]
C:
 [[99.99993]]

原文地址:https://www.cnblogs.com/EatMedicine/p/9030045.html

时间: 2024-11-08 05:43:47

[吃药深度学习随笔] 练习:训练二次方程的参数的相关文章

[吃药深度学习随笔] 损失函数

神经元模型 常用的激活函数(激励函数): 神经网络(NN)复杂度:多用神经网络层数和神经网络参数个数来表示 层数 = 隐藏层层数+1个输出层 参数个数 = 总W(权重) + 总B(偏置) 比如 损失函数(loss):预测值y 和已知答案y_ 的差距 神经网络优化目标:使损失函数loss 达到最小 常用loss计算方法:均方误差MSE 公式: 在TensorFlow中代码: loss_MSE = tf.reduce_mean(tf.square(y-y_)) 例子: import tensorfl

[吃药深度学习随笔] 张量 计算图 会话

张量(tensor):即多为数组/列表 阶:即为张量的维数 张量可以表示0阶到n阶的多维数组 例子: import tensorflow as tf a = tf.constant([1.0, 2.0]) b = tf.constant([3.0, 4.0]) result = a+b print(result) 得到结果 Tensor("add:0", shape=(2,), dtype=float32) 计算图(Graph):搭建神经网络的计算过程,只搭建,不运算,运算在会话(Se

[吃药深度学习随笔] 前向传播:即如何在图中输入数据向前推进从而得到计算结果

w = tf.Variable(tf.random_normal([2,3], stddev=2,mean=0, seed=1)) 其中 tf.random_normal是正太分布 除了这个 还有tf.truncated_normal:去掉过大偏离点(大于2个标准差)的正态分布 tf.random_uniform:平均分布 [2,3]是生成2x3的矩阵 stddev是标准差 mean是均值 seed是随机数种子 构造其余量的方法: #tf.zeros 全0数组 tf.zeros([3,2], i

深度学习—caffe框架训练文档

转存:LMDB E:\机器学习2\caffe资料\caffe_root\caffe-master\Build\x64\Release>convert_imageset.exe E:/机器学习2/caffe资料/caffe_root/caffe-master/examples/myfile/train E:/机器学习2/caffe资料/caffe_root/caffe-master/examples/myfile/train.txt E:/机器学习2/caffe资料/caffe_root/caff

深度学习(五十五)tensorflow分布式训练

tensorflow分布式训练 博客:http://blog.csdn.net/hjimce 微博:黄锦池-hjimce   qq:1393852684 情况一.单机单卡 单机单卡是最普通的情况,当然也是最简单的,示例代码如下: #coding=utf-8 #单机单卡 #对于单机单卡,可以把参数和计算都定义再gpu上,不过如果参数模型比较大,显存不足等情况,就得放在cpu上 import tensorflow as tf with tf.device('/cpu:0'):#也可以放在gpu上 w

深度学习性能提高

性能提高分为四个部分: 1. 通过数据提升性能 2. 通过算法提升性能 3. 通过算法调参提升性能 4. 通过嵌套模型提升性能 通常来讲,随着列表自上而下,性能的提升也将变小.例如,对问题进行新的架构或者获取更多的数据,通常比调整最优算法的参数能带来更好的效果.虽然并不总是这样,但是通常来讲是的. 1. 通过数据提升性能 对你的训练数据和问题定义进行适当改变,你能得到很大的性能提升.或许是最大的性能提升. 以下是我将要提到的思路: 获取更多数据 创造更多数据 重放缩你的数据 转换你的数据 特征选

人工智能的新纪元——深度学习

摘要:随着大数据时代的到来,以神经网络为基础的深度学习迎来春天,世界各地深度学习研究所,研究项目如雨后春笋.一种并非全新却会令世界都会改变的新技术正在渐渐的成熟,走进我们的视野.它的出现使人工智能得到飞跃性的发展[1].深度学习是近几年人工智能领域颇具影响力和代表性的技术之一.本文从深度学习的发展历程,深度学习的技术实现和存在的问题,以及展望和它对社会的影响进行报告. 正文:一.发展历程 1.基础 深度学习的基础是神经网络NN(Neural Network),神经网络最早出现在上世纪40年代.早

深度学习之对抗样本问题

深度学习之对抗样本问题 2006 年,Geoffrey Hinton 提出了深度学习.受益于大数据的出现和大规模计算能力的提升,深度学习已然成为最活跃的计算机研究领域之一.深度学习的多层非线性结构使其具备强大的特征表达能力和对复杂任务的建模能力.最近几年,深度学习的发展也带动了一系列的研究.尤其是在图像识别领域,在一些标准测试集上的试验表明,深度模型的识别能力已经可以达到人类的水平.但是,人们还是会产生一个疑问,对于一个非正常的输入,深度模型是否依然能够产生满意的结果.的确,最近有研究者开始关注

深度学习理解内容 初

深度学习采用神经网络解决线性不可分的问题.既然是深度学习,就是包含多个隐层. 觉得知乎大神说了一段很有意思的话: 1.初恋期.相当于深度学习的输入层.别人吸引你,肯定是有很多因素,比如:身高,身材,脸蛋,学历,性格等等,这些都是输入层的参数,对每个人来说权重可能都不一样. 2.热恋期.我们就让它对应于隐层吧.这个期间,双方各种磨合,柴米油盐酱醋茶. 3.稳定期.对应于输出层,是否合适,就看磨合得咋样了. 大家都知道,磨合很重要,怎么磨合呢?就是不断学习训练和修正的过程嘛!比如女朋友喜欢草莓蛋糕,