tensorflow实践-02:线性回归
来源:互联网 发布:网络电视成人频道源码 编辑:程序博客网 时间:2024/06/05 07:18
为了进一步熟悉tensorflow的基本操作,下面通过一个线性回归的小例子简单展示一下tensorflow的基本使用流程。
数据
由于是简单的线性回归,我们自己生成一份随即数据作为演示就可以了。
def createData(W,b): X = np.linspace(-1,1,100) Y = W*X + b + np.random.randn(*X.shape)*W*0.1 return X,Y
生成数据如下:
构建数据流图
上面生成的数据分布是二维平面上的直线,那么公式为
X和Y是输入的训练数据,用占位符表示
#X = tf.placeholder(tf.float32,shape = trainX.shape) 默认shape=None表示任意类型 #Y = tf.placeholder(tf.float32,shape = trainY.shape) X = tf.placeholder(tf.float32) Y = tf.placeholder(tf.float32)
需要训练的参数是w和b,因为会在每一次迭代时更新,所以需要定义为变量
W = tf.Variable(np.random.randn(),name='weight') B = tf.Variable(np.random.randn(),name='bias')
这里公式非常简单只有一个函数
#也可以Y_pred = tf.add(tf.multiply(W,X) , b) Y_pred = W*X + B
定义损失函数
这里用L2损失
#也可以loss = tf.reduce_sum(tf.squared_difference(Y , Y_pred)) loss = tf.reduce_sum(tf.square(Y - Y_pred))
正则化
loss += 1e-6*tf.global_norm([W])
最小化损失
使用GradientDescentOptimizer优化器,tensorflow内置了一些优化器,可以直接使用。
trainOp = tf.train.GradientDescentOptimizer(0.001).minimize(loss)
训练
epochs = 1000 with tf.Session() as sess: sess.run(tf.initialize_all_variables()) for epoch in range(epochs): w,b = sess.run([trainOp,W,B],feed_dict={X:trainX,Y:trainY})
训练结束后得到最终的w和b,画出来看看结果是否正确:
完整代码
阅读全文
0 0
- tensorflow实践-02:线性回归
- 【实践】基于TensorFlow的线性回归算法实现
- tensorflow 实现线性回归
- tensorflow线性回归
- Tensorflow实现线性回归
- TensorFlow之线性回归
- tensorflow之线性回归
- Tensorflow实现线性回归
- TensorFlow实现线性回归
- tensorflow线性回归例子
- tensorflow线性回归测试
- TensorFlow之线性回归
- Tensorflow-线性回归
- Tensorflow-线性回归
- tensorflow 线性回归
- TensorFlow训练线性回归
- Tensorflow-note-线性回归
- tensorflow 一元线性回归
- PGSQL 将字符串转换成double类型(to_number())
- jar包导入仓库中
- PBFT算法协议介绍
- Android不同drawable目录下对应图片分辨率
- 计算机网络知识整理:应用层,DHCP, DNS, SMTP, HTTP, FTP, TELNET, SNMP
- tensorflow实践-02:线性回归
- 关于mybatis里面的Executor
- kuangbin 数论基础 W
- 1001. A+B Format (20)
- Maven profile介绍
- Java笔记--06
- halcon脱机运行(不安装halcon)
- csdn如何转载别人的文章
- Mobile Computing UVA