马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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。所以最后我们就会预测出结果了,如图:
普通的神经网络现在已经没有人用了,我们以后主要学习的是卷积神经网络。 |