zoukankan      html  css  js  c++  java
  • 基于tensorflow搭建一个神经网络

    一,tensorflow的简介

      Tensorflow是一个采用数据流图,用于数值计算的 开源软件库。节点在图中表示数字操作,图中的线 则表示在节点间相互联系的多维数据数组,即张量 它灵活的架构让你可以在多种平台上展开计算,例 如台式计算机中的一个或多个CPU(或GPU), 服务器,移动设备等等。Tensorflow最初由Google 大脑小组的研究员和工程师们开发出来,用于机器 学习和深度神经网络方面的研究,但这个系统的通 用性使其也可广泛用于其他计算领域。

    二,tensorflow的架构

      TensorFlow的系统结构以C API为界,将整个系统分为「前端」和「后端」两个子系统。

      前端系统 提供多语言编程环境,提供统一的编程模型支撑用户构造计算图 通过Session的形式,连接TensorFlow后端的「运行时」,启动计算图的执行过程。

      后端系统 提供运行时环境,负责执行计算图。

    三,tensorflow的简单实现步骤

      1,定义一个神经层的函数: 神经层里常见的参数通常有weights、biases和激励函数。

      2,导入数据 构建所需的数据。

      3,搭建网络 先定义隐藏层,再定义输出层,计算预测值和真实值的误差

      4,训练 给定次数,让机器开始学习。

      5,结果可视化

      代码如下:

      

    import tensorflow as tf
    import matplotlib.pyplot as plt
    import numpy as np
    
    tf.set_random_seed(1)
    np.random.seed(1)
    #构建所需数据
    x = np.linspace(-1, 1, 100)[:, np.newaxis]          
    noise = np.random.normal(0, 0.1, size=x.shape)
    y = np.power(x, 2) + noise                      
    #输入x和y
    tf_x = tf.placeholder(tf.float32, x.shape)
    tf_y = tf.placeholder(tf.float32, y.shape)
    # 搭建神经网络
    #隐藏层
    l1 = tf.layers.dense(tf_x, 10, tf.nn.relu)
    #输出层
    output = tf.layers.dense(l1, 1)
    loss = tf.losses.mean_squared_error(tf_y, output)
    optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.5)
    train_op = optimizer.minimize(loss)
    sess = tf.Session()
    sess.run(tf.global_variables_initializer())
    plt.ion()
    #训练
    for step in range(100):
        _, l, pred = sess.run([train_op, loss, output], {tf_x: x, tf_y: y})
        if step % 5 == 0:
            plt.cla()
            plt.scatter(x, y)
            plt.plot(x, pred, 'r-', lw=5)
            plt.text(0.5, 0, 'Loss=%.4f' % l, fontdict={'size': 20, 'color': 'red'})
            plt.pause(0.1)
    plt.ioff()
    plt.show()
    

      运行结果如图:

      

    四,总结

      以上为tensorflow的简单介绍,算是基础入门的案例了。往后学就是分类学习,CNN卷积神经网络,RNN循环神经网络了。

  • 相关阅读:
    WCF系列(五) 也谈序列化(下)
    优秀程序员的十个习惯
    WCF系列(九) WCF安全系列(四) WSHttpBinding绑定之Transport安全模式
    TCP/IP 协议简单分析
    技巧:在Silverlight应用程序中进行数据验证
    WCF系列(三) WCF配置文件注释
    [转]ASP.NET(C#)常用代码30例
    服务器端 在iframe中控制父窗体div并调用父窗体Button
    GridView的模版列中加入按钮,触发按钮事件后,如何获取该行的某个值?
    通用分页 模块
  • 原文地址:https://www.cnblogs.com/lvsling/p/9255017.html
Copyright © 2011-2022 走看看