zoukankan      html  css  js  c++  java
  • 02_02Session中Config的参数设置



    import tensorflow as tf
    import numpy as np

    # todo 学习 Session中的参数Config=tf.ConfigProto()的使用。重点是GPU相关的参数


    def config_params():
    # todo 第二种执行会话的方式
    with tf.Graph().as_default():
    # 一、构建模型图
    print('当前模型的默认图是:{}'.format(tf.get_default_graph()))
    # 1、定义2个原始的输入的tensor对象
    a = tf.constant(
    value=[1,2,3,4,5,6,3,4,3,45,5], dtype=tf.float32, shape=[3, 5], name='a'
    )
    b = tf.constant(
    value=[3,3,3,3,3,3234,56,324,3,5], dtype=tf.float32, shape=[5, 3]
    )

    # 2、用op add对上述两个常量分别加一个随机数
    v1 = a + np.random.random_sample()
    v2 = tf.add(b, tf.random_normal(shape=[], dtype=tf.float32, seed=43))

    # 3、使用2个tensor矩阵相乘。
    rezult = tf.matmul(v1, v2)
    print(a, b, v1, v2, rezult)

    # 二、构建会话
    """
    tf.Session(
    target='', 给定连接的url,只有分布式运行的时候需要给定
    graph=None, 调用哪张图,如果不给定,就调用默认图
    config=None) 会话的配置协议。
    """
    optimizer = tf.OptimizerOptions(
    do_common_subexpression_elimination=True, # 表示开启公共执行子句的优化
    do_constant_folding=True, # 设置为True表示开启常数折叠优化。
    opt_level=0 # 设置为0表示开启上述2项优化,默认为0
    )
    graph_options = tf.GraphOptions(optimizer_options=optimizer)
    with tf.Session(config=tf.ConfigProto(graph_options=graph_options)) as sess:
    print(sess.run([rezult, v2]))


    def config_params1():
    # todo 这里增加了使用tf.device指定运算 或者创建变量的设备。
    with tf.Graph().as_default():
    # 一、构建模型图
    print('当前模型的默认图是:{}'.format(tf.get_default_graph()))
    # 1、定义2个原始的输入的tensor对象
    with tf.device('/GPU:0'):
    # a 和 b 两个常量会在gpu:0 上进行创建。
    a = tf.constant(
    value=[1,2,3,4,5,6,3,4,3,45,5], dtype=tf.float32, shape=[3, 5], name='a'
    )
    b = tf.constant(
    value=[3,3,3,3,3,3234,56,324,3,5], dtype=tf.float32, shape=[5, 3]
    )

    # 2、用op add对上述两个常量分别加一个随机数
    v1 = a + np.random.random_sample()
    v2 = tf.add(b, tf.random_normal(shape=[], dtype=tf.float32, seed=43))

    # 3、使用2个tensor矩阵相乘。
    with tf.device('/GPU:1'):
    rezult = tf.matmul(v1, v2)
    print(a, b, v1, v2, rezult)

    # 二、构建会话
    """
    tf.Session(
    target='', 给定连接的url,只有分布式运行的时候需要给定
    graph=None, 调用哪张图,如果不给定,就调用默认图
    config=None) 会话的配置协议。
    """
    with tf.Session(config=tf.ConfigProto(log_device_placement=True,
    allow_soft_placement=True)) as sess:
    print(sess.run([rezult, v2]))


    def config_params2():
    # todo 学习gpu相关的参数。
    with tf.Graph().as_default():
    # 一、构建模型图
    print('当前模型的默认图是:{}'.format(tf.get_default_graph()))
    # 1、定义2个原始的输入的tensor对象
    with tf.device('/GPU:0'):
    # a 和 b 两个常量会在gpu:0 上进行创建。
    a = tf.constant(
    value=[1,2,3,4,5,6,3,4,3,45,5], dtype=tf.float32, shape=[3, 5], name='a'
    )
    b = tf.constant(
    value=[3,3,3,3,3,3234,56,324,3,5], dtype=tf.float32, shape=[5, 3]
    )

    # 2、用op add对上述两个常量分别加一个随机数
    v1 = a + np.random.random_sample()
    v2 = tf.add(b, tf.random_normal(shape=[], dtype=tf.float32, seed=43))

    # 3、使用2个tensor矩阵相乘。
    with tf.device('/GPU:1'):
    rezult = tf.matmul(v1, v2)
    print(a, b, v1, v2, rezult)

    # 二、构建会话
    """
    gpu_options相关参数介绍
    log_device_placement bool值 是否打印设备位置的日志文件
    allow_soft_placement bool值 是否允许tf动态的使用cpu和gpu 默认为False
    """
    gpu_options = tf.GraphOptions(
    allow_growth=True, # 不预先分配使用整个gpu内存计算,而是从小到大按需增长
    per_process_gpu_memory_fraction=0.8 # 值介于(0,1),限制使用该gpu设备内存的百分比。
    )
    with tf.Session(config=tf.ConfigProto(log_device_placement=True,
    allow_soft_placement=True,
    gpu_options=gpu_options)) as sess:
    print(sess.run([rezult, v2]))


    if __name__ == '__main__':
    config_params1()
  • 相关阅读:
    windows下配置mysql环境变量
    360Top奢侈品演示站
    CSS3性能体验
    使用jquery获取radio的值
    获取select 的 val 和 text [转引]
    PHP时间比较和时间差如何计算
    InnoDB和MyISAM的区别与选择
    大型网站技术架构学习摘要
    大型网站系统架构分析--转
    一步步构建大型网站架构-转
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/11741747.html
Copyright © 2011-2022 走看看