zoukankan      html  css  js  c++  java
  • 学习进度笔记-TensorFlow基本知识总结-1

    一、什么是TensorFlow?

      TensorFlow是全面的深度学习框架支持非常全面不是专门为客户端设计

    特点:

    1、真正的可移植性: 引入各种计算设备的支持包括CPU/GPU/TPU,以及能够很好地运行在移动端, 如安卓设备、ios、树莓派等等

    2、多语言支持: Tensorflow 有一个合理的c++使用界面,也有一个易用的python使用界面来构建和 执行你的graphs,你可以直接写python/c++程序。

    3、高度的灵活性与效率: TensorFlow是一个采用数据流图(data flow graphs),用于数值计算的开源软件库 能够灵活进行组装图,执行图。随着开发的进展,Tensorflow的效率不算在提高

    4、支持:TensorFlow 由谷歌提供支持,谷歌投入了大量精力开发 TensorFlow,它希望 TensorFlow 成为机器学习研究人员和开发人员的通用语言

    二、图

      图的创建:

      tf.Graph()

      使用新创建的图

       g = tf.Graph()

      with g.as_default():

        a = tf.constant(1.0)

        assert c.graph is g

      图默认已经注册,一组表示 tf.Operation计算单位的对象和tf.Tensor 表示操作之间流动的数据单元的对象

      获取调用: tf.get_default_graph() op、sess或者tensor 的graph属性

    三、op(运算)

     四、会话

    tf.Session()

    运行TensorFlow操作图的类,使用默认注册的图(可以指定运行图) 会话资源 会话可能拥有很多资源,

    如 tf.Variable,tf.QueueBase 和tf.ReaderBase,会话结束后需要进行资源释放 sess = tf.Session() sess.run(...) sess.close()

    使用上下文管理器 with tf.Session() as sess: sess.run(...) config=tf.ConfigProto(log_device_placement=True)

    交互式:tf.InteractiveSession()

    五、会话中的run()方法

    run(fetches, feed_dict=None,graph=None) 运行ops和计算tensor 嵌套列表,元组, namedtuple,dict或OrderedDict(重载的运算符也能运行)

    feed_dict 允许调用者覆盖图中指定张量的值,提供给 placeholder使用

    返回值异常

    RuntimeError:如果它Session处于无效状态(例如已关闭)。

    TypeError:如果fetches或feed_dict键是不合适的类型。

    ValueError:如果fetches或feed_dict键无效或引用 Tensor不存在。

    六、测试代码

    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)
    View Code
  • 相关阅读:
    node学习网站
    UDP 通讯设置超时时间
    Linux下的五个查找命令:grep、find、locate、whereis、which
    apache 2.4设置禁止访问phpmyadmin
    apache 禁止访问根目录
    linux 下 apache启动、停止、重启命令
    Apache2.4使用require指令进行访问控制–允许或限制IP访问/通过User-Agent禁止不友好网络爬虫
    Apache httpd.conf配置文件AllowOverride参数详解
    链接远程mysql
    svn提交后利用hooks自动更新web服务器
  • 原文地址:https://www.cnblogs.com/20183544-wangzhengshuai/p/14320101.html
Copyright © 2011-2022 走看看