前段时间因为课题需要使用了一段时间TensorFlow,感觉这种框架很有意思,除了可以搭建复杂的神经网络,也可以优化其他自己需要的计算模型,所以一直想自己学习一下写一个类似的图计算框架.前几天组会开完决定着手实现一个模仿TensorFlow接口的简陋版本图计算框架以学习计算图程序的编写以及前向传播和反向传播的实现.目前实现了前向传播和反向传播以及梯度下降优化器,并写了个优化线性模型的例子. 代码放在了GitHub上,取名SimpleFlow, 仓库链接: https://github.com/P…
我们构想有一个神经网络,输入为两个input,中间有一个hidden layer,这个hiddenlayer当中有三个神经元,最后有一个output. 图例如下: 在实现这个神经网络的前向传播之前,我们先补充一下重要的知识. 一.权重w以及input的初始化 我们初始化权重w的方法为随机生成这些权重,一般可以使用这些随机生成的数据正好在正态分布的曲线上,这也是最符合生成符合自然规律的随机数生成方法: import tensorflow as tf #一般情况下神经网络上的参数是w的数列,当然我们…
前言 上一篇中介绍了计算图以及前向传播的实现,本文中将主要介绍对于模型优化非常重要的反向传播算法以及反向传播算法中梯度计算的实现.因为在计算梯度的时候需要涉及到矩阵梯度的计算,本文针对几种常用操作的梯度计算和实现进行了较为详细的介绍.如有错误欢迎指出. 首先先简单总结一下, 实现反向传播过程主要就是完成两个任务: 实现不同操作输出对输入的梯度计算 实现根据链式法则计算损失函数对不同节点的梯度计算 再附上SimpleFlow的代码地址: https://github.com/PytLab/simp…
TensorFlow笔记-04-神经网络的实现过程,前向传播 基于TensorFlow的NN:用张量表示数据,用计算图搭建神经网络,用会话执行计算图,优化线上的权重(参数),得到模型 张量(tensor):多维数组(列表) 阶:张量的维数 计算图(Graph):搭建神经网络的计算过程,只搭建,不运算 会话(Session):执行计算图中的结点运算 神经网络的参数:即计算图中的权重,也可以说是神经元(后面会提到)线上的权重,用变量表示,一般会随机生成这些参数.生成参数的方法是让 w(神经元上的线)…
tensorflow学习笔记(1) (1)tf中的图 图中就是一个计算图,一个计算过程.                                       图中的constant是个常量 计算图只描述过程,不执行. (2)tf中的会话 那么怎么计算呢? tensorflow有个会话是专门用来计算的 import tensorflow as tf x=tf.constant([[1.0,2.0]]) w=tf.constant([[3.0],[4.0]]) y=tf.matmul(x,w…
参考: TensorFlow 自定义模型导出:将 .ckpt 格式转化为 .pb 格式 TensorFlow 模型保存与恢复 snpe tensorflow 模型前向传播 保存ckpt  tensorbard查看 ckpt转pb  pb 转snpe dlc 实例 log文件 输入节点 图像高度 图像宽度 图像通道数 input0 6,6,3 输出节点 --out_node add snpe-tensorflow-to-dlc --graph ./simple_snpe_log/model200.…
  第一讲:人工智能概述       第三讲:Tensorflow框架         前向传播: 反向传播: 总的代码: #coding:utf-8 #1.导入模块,生成模拟数据集 import tensorflow as tf import numpy as np #np为科学计算模块 BATCH_SIZE = 8#表示一次喂入NN多少组数据,不能过大,会噎着 seed = 23455 #基于seed产生随机数 rng = np.random.RandomState(seed) #随机数返回…
#创建一个计算流图 #大多数tensorflow程序开始于dataflow graph 的构造函数 #在这个命令中你执行了tensorflow api的函数 #创建了新的操作tf.Operation (node) #和tf.Tensor (edge) 对象,并且将它们添加到了tf.Graph的实例中 #TensorFlow提供了默认的数据流图,是一个非显式声明的参数 #tf.constant(42.0)创建了一个单个tf.Operation创建了值42.0,并且将它添加到了默认的数据流图中 #返…
卷积,说白了就是对应位置相乘再求和,卷积操作用广泛应用于图像识别,在自然语言处理中也开始应用,用作文本分类问题. 卷积操作最重要的部分就是卷积核或者说过滤器 1.常用过滤器尺寸为3*3或者5*5 2.卷积神经网络中,每个卷基层中过滤器中的参数都是一样的,这样就巨幅减少神经网络的参数 3.边缘可以采用全0填充,或者不进行填充,其结果矩阵略有不同 4.卷积层参数的个数与输入层图片尺寸无关,与深度有关,比如输入层维度32*32*3,卷积层尺寸5*5,深度16,那么这个卷积层的参数个数为:5*5*3*1…
import tensorflow as tf w1 = tf.Variable(tf.random_normal((2, 3), stddev=1, seed=1))w2 = tf.Variable(tf.random_normal((3, 1), stddev=1, seed=1)) x = tf.constant([[0.7, 0.9]]) a = tf.matmul(x, w1)y = tf.matmul(a, w2) init_op = tf.global_variables_init…