• 学习进度笔记-TensorFlow基本知识总结-2


    一、张量(Tensor):

    1、张量的阶和数据类型

     

     

     

    2、张量的属性:  

    graph 张量所属的默认图

    op 张量的操作名

    name 张量的字符串描述

    shape 张量形状

     

     

    3、张量的动态形状与静态形状

    TensorFlow中,张量具有静态形状和动态形状

    静态形状: 创建一个张量或者由操作推导出一个张量时,初始状态的形状 tf.Tensor.get_shape:获取静态形状 tf.Tensor.set_shape():更新Tensor对象的静态形状,通常用于在不能直接推 断的情况下

    动态形状: 一种描述原始张量在执行过程中的一种形状 tf.reshape:创建一个具有不同动态形状的新张量

    注:

    1、转换静态形状的时候,1-D到1-D,2-D到2-D,不能跨阶数改变形状

    2、 对于已经固定或者设置静态形状的张量/变量,不能再次设置静态形状

    3、tf.reshape()动态创建新张量时,元素个数不能不匹配

     

    4、生成张量

     

     

     

     5、改变张量

     

     

     

     

     

     6、提供给Tensor运算的数学函数

    https://www.tensorflow.org/versions/r1.0/api_guides/python/math_ops

     注:这些都是在1.0版本下的函数,不同版本会有些差异

    二、测试代码

    import tensorflow as tf
    import os
    os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
    
    # 创建一张图包含了一组op和tensor,上下文环境
    # op:只要使用tensorflow的API定义的函数都是OP
    # tensor:就指代的是数据
    
    # g = tf.Graph()
    #
    # print(g)
    # with g.as_default():
    #     c = tf.constant(11.0)
    #     print(c.graph)
    #
    # # 实现一个加法运算
    # a = tf.constant(5.0)
    # b = tf.constant(6.0)
    #
    # sum1 = tf.add(a, b)
    #
    # # 默认的这张图,相当于是给程序分配一段内存
    # graph = tf.get_default_graph()
    #
    # print(graph)
    #
    # # 不是op不能运行
    # var1 = 2.0
    # # var2 = 3
    # # sum2 = var1 + var2
    #
    # # 有重载的机制,默认会给运算符重载成op类型
    # sum2 = a + var1
    #
    # print(sum2)
    #
    # # s = tf.Session()
    # #
    # # s.run()
    # # s.run()
    # # s.close()
    #
    # # 只能运行一个图, 可以在会话当中指定图去运行
    # # 只要有会话的上下文环境,就可以使用方便eval()
    #
    # # 训练模型
    # # 实时的提供数据去进行训练
    #
    # # placeholder是一个占位符,feed_dict一个字典
    # plt = tf.placeholder(tf.float32, [2, 3, 4])
    #
    # print(plt)
    #
    # with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess:
    #     # print(sess.run(plt, feed_dict={plt: [[1, 2, 3], [4, 5, 36], [2, 3, 4]]}))
    #     # print(sum1.eval())
    #     print(a.graph)
    #     print("---------")
    #     print(a.shape)
    #     print(plt.shape)
    #     print("-------")
    #     print(a.name)
    #     print("-------")
    #     print(a.op)
    
    # tensorflow:打印出来的形状表示
    # 0维:()   1维:(5)  2维:(5,6)   3维:(2,3,4)
    
    # 形状的概念
    # 静态形状和动态性状
    # 对于静态形状来说,一旦张量形状固定了,不能再次设置静态形状, 不能夸维度修改 1D->1D 2D->2D
    # 动态形状可以去创建一个新的张量,改变时候一定要注意元素数量要匹配  1D->2D  1->3D
    
    plt = tf.placeholder(tf.float32, [None, 2])
    
    print(plt)
    
    plt.set_shape([3, 2, 1])
    
    print(plt)
    
    # plt.set_shape([2, 3]) # 不能再次修改
    
    plt_reshape = tf.reshape(plt, [3, 3])
    
    print(plt_reshape)
    
    with tf.Session() as sess:
        pass
    View Code
  • 相关阅读:
    [转载]Sublime Text 3 搭建 React.js 开发环境
    浏览器缓存之Expires Etag Last-Modified max-age详解
    第16周作业
    第15周作业
    第14周作业
    第13周作业集
    软件工程结课作业
    第13次作业--邮箱的正则表达式
    第12次作业--你的生日
    第11次作业--字符串处理
  • 原文地址:https://www.cnblogs.com/20183544-wangzhengshuai/p/14320271.html
Copyright © 2020-2023  润新知