|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 alltolove 于 2018-11-24 06:05 编辑
最近在机器学习里最流行的是深度学习,它的编程语言框架有很多,如图:
我们这里只用在深度学习里现在最流行的框架,谷歌的tensorflow。tensorflow是一种计算图式的编程框架,和c++很像,要提前声明变量类型,而且还有命名空间。所以比较难于掌握,而且一旦写好代码后很难调参。今天先了解下普通的神经网络,代码如下:
- import tensorflow as tf
- import numpy as np
- import matplotlib.pyplot as plt
- data_x=np.random.rand(100).astype(np.float32)
- data_y=data_x*2+3
- weights=tf.Variable(tf.random_uniform([1],-1.0,1.0))
- bais=tf.Variable(tf.zeros([1]))
- y=data_x*weights+bais
- loss=tf.reduce_mean(tf.square(data_y-y))
- optimizer=tf.train.GradientDescentOptimizer(0.5)
- train=optimizer.minimize(loss)
- init=tf.global_variables_initializer()
- with tf.Session() as sess:
- sess.run(init)
- for step in range(100):
- sess.run(train)
- if step%20==0:
- print(sess.run(weights),sess.run(bais))
- %matplotlib inline
- plt.plot(range(100),sess.run(y))
- plt.scatter(range(100),data_y,c='r')
- plt.show()
复制代码
这里的data_x,和data_y就是输入和输出,weights是权重参数,bais是偏置参数,下面就要用这两个参数来拟合数据,通过data_x乘上权重参数然后加上偏置参数得出一个值,使这个值不断的接近真实值data_y,loss=tf.reduce_mean(tf.square(data_y-y))这句话就是来计算真实值和预测值之间的误差。train=optimizer.minimize(loss)这句是不断的缩小他们之间的误差。tensorflow会自动调整weights和bais这两个变量,让接近于data_y=data_x*2+3这里的2和3。所以最后我们就会预测出结果了,如图:
普通的神经网络现在已经没有人用了,我们以后主要学习的是卷积神经网络。 |
|