• 一、神经网络构建八股搭建


    学习目标:通过例子,搭建神经网络的八股

    一、流程

    1. 导入模块,生成模拟数据集;
      import
      常量定义
      生成数据集
    2. 前向传播: 定义输入、参数和输出(搭建模型)
      x      y_
      w1   w2
      a      y
    3. 反向传播:定义损失函数、反向传播方法(用于训练模型参数)
      loss=
      train_step=
    4. 生成会话,训练 STEPS 轮

    二、例程

    例:随机产生 32 组生产出的零件的体积和重量,训练 3000 轮,每 500 轮输出一次损失函数。

    源码:

     1 #coding :utf-8
     2 
     3 #--1-- 
     4 import tensorflow as tf
     5 import numpy as np
     6 
     7 BATCH_SIZE=8 
     8 seed=23455
     9 
    10 rng=np.random.RandomState(seed)
    11 X=rng.rand(32,2) #生成32行2列的列表(矩阵)
    12 
    13 Y=[[int(x0+x1<1)]for (x0,x1) in X] #对于X中的每一个(x0,x1),判断x0+x1<1成立,Y为1,否则为0,Y为32行2列的2唯张量
    14 print "X:
    ",X
    15 print "Y:
    ",Y
    16 
    17 #--2--相当于提前定义,声明变量, 前向传播,搭建计算模型
    18 x=tf.placeholder(tf.float32,shape=(None,2))
    19 y_=tf.placeholder(tf.float32,shape=(None,1))
    20 
    21 w1=tf.Variable(tf.random_normal([2,3],stddev=1,seed=1))
    22 w2=tf.Variable(tf.random_normal([3,1],stddev=1,seed=1))
    23 
    24 a=tf.matmul(x,w1)
    25 y=tf.matmul(a,w2)
    26 
    27 #--3--反向传播 定义损失函数和优化方法
    28 loss=tf.reduce_mean(tf.square(y-y_))
    29 train_step=tf.train.GradientDescentOptimizer(0.001).minimize(loss)
    30 
    31 #--4--
    32 with tf.Session() as sees:
    33     init_op=tf.initialize_all_variables()
    34     sees.run(init_op)
    35     print "w1
    ",sees.run(w1)#打印初始的w1和w2
    36     print "w2
    ",sees.run(w2)
    37 
    38     STEPS=3000#迭代执行3000次,训练
    39     for i in range(STEPS):
    40         start=(i*BATCH_SIZE)%32 #每一次取8组喂给NN,进行优化训练
    41         end=start+BATCH_SIZE
    42         sees.run(train_step,feed_dict={x:X[start:end],y_:Y[start:end]})
    43         if i%500==0:
    44             total_loss=sees.run(loss,feed_dict={x:X,y_:Y}) #打印损失函数的结果
    45     
    46     #-----print------
    47     print "
    "
    48     print "w1:
    ",sees.run(w1)
    49     print "w2:
    ",sees.run(w2)

    结果:

    1)# source activate tensorflow 进入tensorflow环境

    2)执行# python NN_1.py

  • 相关阅读:
    Android ImageView 的scaleType 属性图解
    Android 颜色透明度换算
    Android动态控制状态栏显示和隐藏
    xutils Error:(37, 39) 错误: 无法访问HttpRequestBase 找不到org.apache.http.client.methods.HttpRequestBase的类文件
    Android学习笔记————利用JDBC连接服务器数据库
    android权限(permission)大全
    as无法在vivo上安装程序解决
    Android Menu用法全面讲解
    Android Studio gradle配置详解
    各种面试题(二)
  • 原文地址:https://www.cnblogs.com/lxl-lennie/p/10382666.html
Copyright © 2020-2023  润新知