创建层

创建密集连接层,并应用激活函数

x = tf.placeholder(tf.float32, shape=[None, 3])
linear_model = tf.layers.Dense(units=1)
y = linear_model(x)

初始化层

包含变量的层都需要经过初始化

init = tf.global_variables_initializer()
sess.run(init)

执行层

print(sess.run(y, {x: [[1, 2, 3],[4, 5, 6]]}))
# [[-3.41378999]
# [-9.14999008]]

层函数的快捷方式

快捷方式是在单次调用中创建和运行层

x = tf.placeholder(tf.float32, shape=[None, 3])
y = tf.layers.dense(x, units=1) init = tf.global_variables_initializer()
sess.run(init) print(sess.run(y, {x: [[1, 2, 3], [4, 5, 6]]}))

尽管这种方式很方便,但是无法访问 tf.layers.Layer 对象。这会让自省和调试变得困难,并且无法重复的使用相同的层。

训练

定义数据

定义一些输入x,以及每个输入值的预期输出值 y_true:

x = tf.constant([[1], [2], [3], [4]], dtype=tf.float32)
y_true = tf.constant([[0], [-1], [-2], [-3]], dtype=tf.float32)

定义模型

接下来,创建一个简单的线性模型,其输出值只有1个:

linear_model = tf.layers.Dense(units=1)

y_pred = linear_model(x)

搭建好模型后,我们可以运行一次,看看第一次运行的预测值:

sess = tf.Session()
init = tf.global_variables_initializer()
sess.run(init) print(sess.run(y_pred)) # [[ 0.02631879]
# [ 0.05263758]
# [ 0.07895637]
# [ 0.10527515]]

损失

我们使用均方误差来定义损失函数,虽然可以使用用较低级别的数学运算手动定义,但 tf.losses 模块提供了一系列常用的损失函数。

loss = tf.losses.mean_squared_error(labels=y_true, predictions=y_pred)

print(sess.run(loss))        # 2.23962

训练,TensorFlow提供了执行标准化算法啊的优化器 (tf.train.Optimizer),最简单的是梯度下降法,由实现 tf.train.GradientDescentOptimizer

optimizer = tf.train.GradientDescentOptimizer(0.01)
train = optimizer.minimize(loss) for i in range(100):
_, loss_value = sess.run((train, loss))
print(loss_value)
print(sess.run(y_pred))

用Tensorflow搭建网络的更多相关文章

  1. (转)一文学会用 Tensorflow 搭建神经网络

    一文学会用 Tensorflow 搭建神经网络 本文转自:http://www.jianshu.com/p/e112012a4b2d 字数2259 阅读3168 评论8 喜欢11 cs224d-Day ...

  2. 基于tensorflow搭建一个神经网络

    一,tensorflow的简介 Tensorflow是一个采用数据流图,用于数值计算的 开源软件库.节点在图中表示数字操作,图中的线 则表示在节点间相互联系的多维数据数组,即张量 它灵活的架构让你可以 ...

  3. 一文学会用 Tensorflow 搭建神经网络

    http://www.jianshu.com/p/e112012a4b2d 本文是学习这个视频课程系列的笔记,课程链接是 youtube 上的,讲的很好,浅显易懂,入门首选, 而且在github有代码 ...

  4. 用TensorFlow搭建一个万能的神经网络框架(持续更新)

    我一直觉得TensorFlow的深度神经网络代码非常困难且繁琐,对TensorFlow搭建模型也十分困惑,所以我近期阅读了大量的神经网络代码,终于找到了搭建神经网络的规律,各位要是觉得我的文章对你有帮 ...

  5. 使用Tensorflow搭建自编码器(Autoencoder)

    自编码器是一种数据压缩算法,其中数据的压缩和解压缩函数是数据相关的.从样本中训练而来的.大部分自编码器中,压缩和解压缩的函数是通过神经网络实现的. 1. 使用卷积神经网络搭建自编码器 导入MNIST数 ...

  6. [DL学习笔记]从人工神经网络到卷积神经网络_3_使用tensorflow搭建CNN来分类not_MNIST数据(有一些问题)

    3:用tensorflow搭个神经网络出来 为什么用tensorflow呢,应为谷歌是亲爹啊,虽然有些人说caffe更适合图像啊mxnet效率更高等等,但爸爸就是爸爸,Android都能那么火,一个道 ...

  7. 用Tensorflow搭建神经网络的一般步骤

    用Tensorflow搭建神经网络的一般步骤如下: ① 导入模块 ② 创建模型变量和占位符 ③ 建立模型 ④ 定义loss函数 ⑤ 定义优化器(optimizer), 使 loss 达到最小 ⑥ 引入 ...

  8. pytorch搭建网络,保存参数,恢复参数

    这是看过莫凡python的学习笔记. 搭建网络,两种方式 (1)建立Sequential对象 import torch net = torch.nn.Sequential( torch.nn.Line ...

  9. 搭建网络svn实战

    工作中的问题(7) 转自:http://blog.csdn.net/xiaoting451292510/article/details/8562570 经常性我们和朋友写一些程序,大家在不同的城市确有 ...

随机推荐

  1. POJ 1006 Biorhythnms(中国剩余定理)

    http://poj.org/problem?id=1006 题意: (n+d) % 23 = p ;(n+d) % 28 = e ;(n+d) % 33 = i ; 求最小的n. 思路: 这道题就是 ...

  2. install ros-indigo-tf

    sudo apt-get install ros-indigo-tf

  3. 【Python】使用Pytest集成Allure生成漂亮的图形测试报告

    前言 大概两个月前写过一篇<[测试设计]使用jenkins 插件Allure生成漂亮的自动化测试报告>的博客,但是其实Allure首先是一个可以独立运行的测试报告生成框架,然后才有了Jen ...

  4. 【Docker】Segmentation Fault or Critical Error encountered. Dumping core and abort

    背景 CentOS7 安装Docker后,load镜像时出现以下错误: Segmentation Fault or Critical Error encountered. Dumping core a ...

  5. Socket编程理论

    Socket理论 本地IP地址.本地端口号.外地IP地址.外地端口号组成一对套接字对. socket(套接字),就是 IP:端口号的形式. 一个完整的Socket有一个本地唯一的Socket号,由操作 ...

  6. HDU 4540 线性DP

    威威猫系列故事——打地鼠 Time Limit: 300/100 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total ...

  7. Assert 类

    Assert 类 使用 true/false 命题验证单元测试中的条件. 继承层次结构     System.Object   Microsoft.VisualStudio.TestTools.Uni ...

  8. 安装wamp后,127.0.0.1可以访问,localhost不能访问

    今天安装wamp后,127.0.0.1可以访问,localhost不能访问,出现 “error You don't have permission to access”的错误, 网上查了下,很多方法都 ...

  9. Rancher快速入门

    https://www.cnrancher.com/docs/rancher/v2.x/cn/overview/quick-start-guide/

  10. Linux 需要掌握的一些命令

    详情: 1. tar 创建一个新的tar文件 $ tar cvf archive_name.tar dirname/ 解压tar文件 $ tar xvf archive_name.tar 查看tar文 ...