前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tensorflow | 斯坦福cs20si | lecture1

Tensorflow | 斯坦福cs20si | lecture1

作者头像
努力在北京混出人样
发布2019-02-18 16:48:20
6640
发布2019-02-18 16:48:20
举报
文章被收录于专栏:祥子的故事

根据学习斯坦福cs20si的课件记录学习笔记

一些有趣的tensorflow项目

  • Neural Style Translation 人人是梵高大师,人人做名画
这里写图片描述
这里写图片描述
  • Generative Handwriting 手写字识别
这里写图片描述
这里写图片描述
  • WaveNet: Text to Speech 文本转为语音
这里写图片描述
这里写图片描述

学习目标

这里写图片描述
这里写图片描述
  • 理解TF的图计算方法
  • 探究TF的内建函数
  • 构建最合适的深度学习项目

推荐的资料

这里写图片描述
这里写图片描述

书:

  • TensorFlow for Machine Intelligence
  • Hands-On Machine Learning with Scikit-Learn and TensorFlow. Chapter 9: Up and running with TensorFlow
  • Fundamentals of Deep Learning. Chapter 3: Implementing Neural Networks in TensorFlow (FODL)

网站:

  • tensorflow.org 官网

下面来开始Tensorflow的代码学习

这里写图片描述
这里写图片描述

首先,导入tensorflow

代码语言:javascript
复制
import tensorflow as tf

简化tensorflow

这里写图片描述
这里写图片描述
  • tf.contrib.learn 类似于scikit-learn,帮助用户从过渡到the world of one-liner
  • tf.contrib.slim 轻的权重库,用于定义、训练、评估复杂模型
  • 高级的API:Keras,TFLearn,Pretty Tensor
这里写图片描述
这里写图片描述
  • tensorflow 不是以提供现成模型为目的
  • tensorflow 提供了很多适用的扩展函数和类,允许用户自定义模型

图计算

这里写图片描述
这里写图片描述

数据流图

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

先装饰图,在执行操作

张量的定义

这里写图片描述
这里写图片描述
  • 0维 标量(数值)
  • 1维 向量
  • 2维 矩阵

依次类推

定义加法

这里写图片描述
这里写图片描述

x=3,y=5

进一步:

这里写图片描述
这里写图片描述

a = tf.add(3,5) 得到张量a,如下图

这里写图片描述
这里写图片描述

打印出来

代码语言:javascript
复制
import tensorflow as tf
a = tf.add(3, 5)
print (a) 

Tensor(“Add_7:0”, shape=(), dtype=int32)

显然没有得到a = 8这个数值,而是以张量的形式来表示的

问题:如何得到数字a呢?

这里写图片描述
这里写图片描述

代码如下:

代码语言:javascript
复制
import tensorflow as tf
a = tf.add(3,5)
init = tf.global_variables_initializer()
#启动模型
sess = tf.Session()
#初始化模型
sess.run(init)
print (sess.run(a))

结果为 8

或者

这里写图片描述
这里写图片描述

代码如下:

代码语言:javascript
复制
import tensorflow as tf
a = tf.add(3,5)
init = tf.global_variables_initializer()
#启动模型
sess = tf.Session()
#初始化模型
sess.run(init)
with tf.Session() as sess:
    print (sess.run(a))

结果为:8

关于tf.Session

这里写图片描述
这里写图片描述

构建更多的图

这里写图片描述
这里写图片描述

代码如下:

代码语言:javascript
复制
import tensorflow as tf
x =3;y=2;
op1 = tf.add(x, y)
op2 = tf.mul(x, y)
op3 = tf.pow(op2, op1)
with tf.Session() as sess:
    op3 = sess.run(op3)
    print (op3)

结果为:7776

子图

这里写图片描述
这里写图片描述

代码如下:

代码语言:javascript
复制
import tensorflow as tf
x = 2
y = 3
op1 = tf.add(x, y)
op2 = tf.mul(x, y)
useless = tf.mul(x, op1)
op3 = tf.pow(op2, op1)
with tf.Session() as sess:
    op3 = sess.run(op3)
    print (op3)

结果为:7776

对无用的图也做执行

这里写图片描述
这里写图片描述

代码如下:

代码语言:javascript
复制
import tensorflow as tf
x = 2
y = 3
op1 = tf.add(x, y)
op2 = tf.mul(x, y)
useless = tf.mul(x, op1)
op3 = tf.pow(op2, op1)
with tf.Session() as sess:
    op3, not_useless = sess.run([op3, useless])
    print ('op3:',op3,'not_useless:',not_useless)

结果:op3: 7776 not_useless: 10

对于函数tf.Session.run定义如下:

代码语言:javascript
复制
tf.Session.run(fetches, feed_dict=None,
options=None, run_metadata=None)

计算模块GPU或CPU的图表示:

这里写图片描述
这里写图片描述

Distributed Computation分布式计算

这里写图片描述
这里写图片描述

上图的代码存在问题,目前不知道怎么修改。若是有朋友有修改方案,请在下方留言,谢谢!

如果想构建多个图呢?

这里写图片描述
这里写图片描述

使用默认图,不能构建多个图。

这里写图片描述
这里写图片描述

若是非要构建多个图呢?要求如下:

这里写图片描述
这里写图片描述
  • Multiple graphs require multiple sessions, each will try to use all available resources by default
  • Can’t pass data between them without passing them through python/numpy, which doesn’t work in distributed
  • It’s better to have disconnected subgraphs within one graph

构建图

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

这张图的代码也有问题,等后续修正。

或者:

这里写图片描述
这里写图片描述

代码如下:

代码语言:javascript
复制
import tensorflow as tf

g = tf.Graph()
with g.as_default():
    a = 3
    b = 5
    x = tf.add(a, b)
sess = tf.Session(graph=g) # session is run on the graph g
# run session
print (sess.run(x))
sess.close()

结果:8

操作默认图

这里写图片描述
这里写图片描述

用函数g = tf.get_default_graph()

这里写图片描述
这里写图片描述

代码如下:

代码语言:javascript
复制
import tensorflow as tf
g = tf.Graph()
# add ops to the default graph
a = tf.constant(3)
# add ops to the user created graph
with g.as_default():
    b = tf.constant(5)
    print (b)

结果:Tensor(“Const:0”, shape=(), dtype=int32)

这里写图片描述
这里写图片描述

代码如下:

代码语言:javascript
复制
import tensorflow as tf
g1 = tf.get_default_graph()
g2 = tf.Graph()
# add ops to the default graph
with g1.as_default():
    a = tf.constant(3)
    print (a)
# add ops to the user created graph
with g2.as_default():
    b = tf.constant(5)
    print (b)

Tensor(“Const_1:0”, shape=(), dtype=int32) Tensor(“Const:0”, shape=(), dtype=int32)

课件下载地址:链接:http://pan.baidu.com/s/1bSFLhG 密码:yz24

TensorFlow for Machine Intelligence : 链接:http://pan.baidu.com/s/1nvwf5yh 密码:v9w9

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年01月26日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
灰盒安全测试
腾讯知识图谱(Tencent Knowledge Graph,TKG)是一个集成图数据库、图计算引擎和图可视化分析的一站式平台。支持抽取和融合异构数据,支持千亿级节点关系的存储和计算,支持规则匹配、机器学习、图嵌入等图数据挖掘算法,拥有丰富的图数据渲染和展现的可视化方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档