zoukankan      html  css  js  c++  java
  • TensorFlow基础入门(一)

    import tensorflow as tf 
    
    #创建一个常值运算,将作为一个节点加入到默认计算图中
    hello = tf.constant("Hello,world!")
    
    #创建一个TF对话
    sess=tf.Session()
    
    #运行并获得结果
    print(sess.run(hello))
    '''
    输出 b'Hello,world!'
    b表示Bytes literals(字节文字)
    

    TensorFlow计算模型-计算图
    Tensorflow=Tensor+Flow
      Tensor 张量
        数据结构:多维数组
      Flow 流
        计算模型:张量之间通过计算而转换的过程

    TensorFlow是一个通过计算图的形式表述计算的编程系统,每一个计算都是计算图上的一个节点

    计算图是一个有向图,由一下内容构成:
    一组节点,每个节点都代表一个操作,是每一种运算
    一组有向边,每条边代表节点之间的关系(数据传递和控制依赖)

    计算图的实例

    import tensorflow as tf 
    
    #一个简单计算图
    node1=tf.constant(3.0,tf.float32,name="node1")
    node2=tf.constant(4.0,tf.float32,name="node2")
    node3=tf.add(node1,node2)
    print(node3)
    
    #输出的结果不是一个具体的数字,而是一个张量的结构
    #Tensor("Add:0", shape=(), dtype=float32)
    View Code

    计算图的执行

    计算图的执行
    创建计算图只是建立静态计算模型
    执行对话才能提供数据并获得结果

    #建立对话并显示运行结果
    sess=tf.Session()
    print("运行sess.run(node1)的结果:",sess.run(node1))
    #运行sess.run(node1)的结果:3.0
    print("运行sess.run(node2)的结果:",sess.run(node2))
    #运行sess.run(node1)的结果:4.0
    print("运行sess.run(node3)的结果:",sess.run(node3))
    #运行sess.run(node1)的结果:7.0
    #关闭session
    sess.close()

    在TensorFlow中,所有的数据都通过张量的形式来表示
    从功能的角度,张量可以简单理解为多为数组
    零阶张量表示标量(scalar),也就是一个数
    一阶张量为向量(vector),也就是一维数组
    n阶张量可以理解为一个n维数组;
    张量并没有真正保存数字,它保存的是计算过程


    张量的属性
    Tensor("Add:0",shape=(),dtype=float32)

    名字(name)
    ` “node:src_output”:node节点名称,src_output来自节点的第几个输出

    形状(shape)
    张量的维度信息,shape=(),表示是标量

    类型(type)
    每一个张量会有一个唯一的类型
    TensorFlow会对参与运算的所有张量进行类型的检查,发现类型不匹配时会报错

    张量的形状
    三个术语描述张量的维度:阶(rank)、形状(shape)、维数(dimension number)

    import tensorflow as tf
    '''
    张量的形状
    '''
    tens1=tf.constant([
    [[1,2,2],[2,2,3]],
    [[3,5,6],[5,4,3]],
    [[7,0,1],[9,1,9]],
    [[11,12,7],[1,3,14]]
    ],name="tens1")
    print(tens1)

    #Tensor("tens1_2:0",shape=(4,2,3),dtype=int32)
    '''
    解释shape=(4,2,3)
    '''

    scalar=tf.constant(100)
    vector=tf.constant([1,2,3,4,5])
    matrix=tf.constant([[1,2,3],[4,5,6]])
    cube_matrix=tf.constant([
    [[1],[2],[3]],
    [[4],[5],[6]],
    [[7],[8],[9]]
    ])
    #输出维度
    print(scalar.get_shape())
    print(vector.get_shape())
    print(matrix.get_shape())
    print(cube_matrix.get_shape())
    #输出内容如下

    '''
    ()
    (5,)
    (2, 3)
    (3, 3, 1)
    '''

    #TensorBord:TensorFlow的可视化
    import tensorflow as tf 
    
    #清除default graph和不断增加的节点
    tf.reset_default_graph()
    
    #logdir改为自己机器上的合适路径
    logdir='D:/log'
    
    #定义一个简单的计算图,实现向量加法的操作
    input1=tf.constant([1.0,2.0,3.0],name="input1")
    input2=tf.Variable(tf.random_uniform([3]),name="input2")
    output=tf.add_n([input1,input2],name="add")
    
    #生成一个写日志的writer,并将当前的TensorFlow计算图写入日志。
    writer=tf.summary.FileWriter(logdir,tf.get_default_graph())
    writer.close() 
    一纸高中万里风,寒窗读破华堂空。 莫道长安花看尽,由来枝叶几相同?
  • 相关阅读:
    html5 file 上传文件
    JavaScript数组去重—ES6的两种方式
    音频资源下载
    whistle工具全程入门
    解构赋值
    节流(Throttling)和去抖(Debouncing)详解
    HTML5实现全屏
    Vue.js 子组件的异步加载及其生命周期控制
    6个Async/Await完胜Promise的原因
    Docker容器学习与分享08
  • 原文地址:https://www.cnblogs.com/byczyz/p/12068701.html
Copyright © 2011-2022 走看看