TF Girls 修炼指南学习笔记(1)

开始在B站上学习TensorFlow, 这个系列大概长这样。

Screen Shot 2017-06-05 at 9.40.36 AM.png

这个repo提供了代码,ppt,以及视屏的链接:
https://github.com/glossary95/TensorFlow-Tutorial

这篇笔记是1-3的内容,这部分讲了一点基本的小语法,作为正式开始机器学习之前的准备。下面逐段讲解该部分的代码示例:

1.先引入几个基本概念:

import tensorflow as tf

print('Load TV version',tf._version_)

#Tensor 在数学中是“张量”
#标量,矢量\向量,张量

#简单地理解
#标量表示值
#矢量表示位置(空间中的一个点)
#张量表示整个空间

#一维数组是矢量
#多维数组是张量,矩阵也是张量

#4个重要的类型
#@Variable 计算图谱中的变量
#@Tensor 一个多维矩阵,带有很多方法
#@Graph 一个计算图谱
#@Session 用来运行一个计算图谱

计算图谱呢,官网提供的长这样,先有一个粗略认识:

Screen Shot 2017-06-02 at 9.02.08 AM.png

2. 三个重要的函数: tf.func_name

#三个重要的函数

#Variable 变量 
#以下是变量这个类的constructor
#tf.Variable.__init__(
#    initial_value=None,@Tensor
#    traibale=True,
#    collections=None,
#    validate_shape=True,
#    caching_device=None,
#    name=None,
#    variable_def=None
#    dtype=None
#)
#注意: Variable 是一个Class,Tensor也是一个Class

#Constant 常数
# tf.constant(value,dtype=None,shape=None,name='Const')
# return : a constant @Tensor

#Placeholder 暂时变量?
#tf.placeholder(dtype,shape=None,name=None)
#return :一个还尚未存在的 @Tensor

注意: tf.constant和tf.placeholder返回的都是一个张量tensor
下面实现一个四则运算的函数 basic_operation():
变量 + 变量 = 张量(addv)
常量就是一个张量,常量 + 常量 = 张量
运行session,初始化所有的 变量
张量.eval(session = my_session_name)与my_session_name.run(张量)等价。
在with tf.Session(graph=graph) as mySess:这个代码块里,该写session=sess的地方,都可以省略,比如run(),比如eval()。因为这个块里面,使用的就是mySess。

def basic_operation():
    v1 = tf.Variable(10)
    v2 = tf.Variable(5)
    addv = v1 + v2
    print(addv)
    print(type(addv))  //Tensor
    print(type(v1))    //Variable
    
    c1 = tf.constant(10)
    c2 = tf.constant(5)
    addc = c1 + c2
    print(addc)
    print(type(addc)) //Tensor
    print(type(c1))     //Tensor
    
    #用来运行计算图谱的对象\实例?
    #session is a runtime
    sess = tf.Session();
    
    #Variable ->初始化 ->有值的Tensor
    tf.initialize_all_varibales().run(session=sess)
    print('变量是需要初始化的')
    #以下两行的作用是一样的:在session下算出addv的值
    print('加法(v1,v2)=',addv.eval(session=sess))
    print('加法(v1,v2)=',sess.run(addv)) 
    print('加法(c1,c2)=',addc.eval(session=sess))
    
    #上面的一切,可以改写成这样:
    #有一个图,里面有一些数据,然后有一个针对这个图的session
    #tf.Graph.__init__()
    #Creates a new empty Graph
    graph = tf.Graph()
    with graph.as_default():
        value1 = tf.constant([1,2])
        value2 = tf.Variable([3,4])
        mul = value1 * value2
        mul2 =  value1 / value2
        
    with tf.Session(graph=graph) as mySess:
        tf.initialize_all_variables().run()
        print('一一对应乘法(value1,value2)=',mySess.run(mul))
        print('一一对应乘法(value1,value2)=',mul.eval())
        print('一一对应的除法(value1, value2) = ', mySess.run(mul2))
    print('一一对应的除法(value1, value2) = ', mul2.eval())
    # tensor.eval(session=sess)
    # sess.run(tensor)

3. Placeholder很重要

  # 省内存?placeholder才是王道
# def use_placeholder():
    graph = tf.Graph()
    with graph.as_default():
        value1 = tf.placeholder(dtype=tf.float64)
        value2 = tf.Variable([3, 4], dtype=tf.float64)
        mul = value1 * value2

    with tf.Session(graph=graph) as mySess:
        tf.initialize_all_variables().run()
        # 我们想象一下这个数据是从远程加载进来的
        # 文件,网络
        # 假装是 10 GB
        value = load_from_remote()
        for partialValue in load_partial(value, 2):
            # runResult = mySess.run(mul, feed_dict={value1: partialValue})
            evalResult = mul.eval(feed_dict={value1: partialValue})
            print('乘法(value1, value2) = ', runResult)
        # cross validation

def load_from_remote():
    return [-x for x in range(1000)]


# 自定义的 Iterator
# yield, generator function
def load_partial(value, step):
    index = 0
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • TF API数学计算tf...... :math(1)刚开始先给一个运行实例。tf是基于图(Graph)的计算系统...
    MachineLP阅读 3,437评论 0 1
  • 简单线性回归 import tensorflow as tf import numpy # 创造数据 x_dat...
    CAICAI0阅读 3,540评论 0 49
  • 春夏秋冬轮回, 我在回忆里驻足, 以为我想,我等,就可以, 重新抓住你的影子。 想起你的脸庞, 洋溢微笑的眼角, ...
    章鱼先生的领结阅读 565评论 0 1
  • 小豆豆遇到了不开心的事,妈妈说:人生不如意之事十之八九。 妈妈猛然想起,这是自己小时候妈妈说过的话啊…… 姥姥总是...
    思百纳阅读 167评论 0 1
  • 优点:1.人品好2.性格好3.有才华 1.人品好。坑人的事情 我不会做。上大学时,我对宿舍的同学都很友善,认为吃亏...
    后知后觉的持续努力阅读 145评论 0 0