鱼C论坛

 找回密码
 立即注册
查看: 1367|回复: 0

[技术交流] 普通的神经网络

[复制链接]
发表于 2018-11-24 05:56:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 alltolove 于 2018-11-24 06:05 编辑

        最近在机器学习里最流行的是深度学习,它的编程语言框架有很多,如图:
u=2055108399,3346018356&fm=173&app=25&f=JPEG.jpg
        我们这里只用在深度学习里现在最流行的框架,谷歌的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。所以最后我们就会预测出结果了,如图:
sadsaasds.png
        普通的神经网络现在已经没有人用了,我们以后主要学习的是卷积神经网络。

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 09:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表