博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Variables多种表达
阅读量:6413 次
发布时间:2019-06-23

本文共 3557 字,大约阅读时间需要 11 分钟。

Variables:TF基础数据之一,常用于变量的训练。。。重要性刚学TF就知道了

1.tf.Variable() 

tf.Variable(initial_value=None, trainable=True, collections=None, validate_shape=True, caching_device=None, name=None, variable_def=None, dtype=None, expected_shape=None, import_scope=None)

  这种方法是最基本最简单的创建方式,一些基本介绍就不说了

2.与tf.get_variable()

tf.get_variable(name, shape=None, dtype=None, initializer=None, regularizer=None, trainable=True, collections=None, caching_device=None, partitioner=None, validate_shape=True, custom_getter=None)

  比上一个方法高级,不仅可以直接创建还可以使用权值共享功能。

  A)建立变量Variable和get_variable的区别 

    使用tf.Variable时,如果检测到命名冲突,系统会自己处理。使用tf.get_variable()时,系统不会处理冲突,而会报错。

1 import tensorflow as tf2 w_1 = tf.Variable(3,name="w_1")3 w_2 = tf.Variable(1,name="w_1")4 print w_1.name5 print w_2.name6 #输出7 #w_1:08 #w_1_1:0
1 import tensorflow as tf2 3 w_1 = tf.get_variable(name="w_1",initializer=1)4 w_2 = tf.get_variable(name="w_1",initializer=2)5 #错误信息6 #ValueError: Variable w_1 already exists, disallowed. Did7 #you mean to set reuse=True in VarScope?

  B)权值共享  

1 import tensorflow as tf 2  3 with tf.variable_scope("scope1"): 4     w1 = tf.get_variable("w1", shape=[]) 5     w2 = tf.Variable(0.0, name="w2") 6 with tf.variable_scope("scope1", reuse=True): 7     w1_p = tf.get_variable("w1", shape=[]) 8     w2_p = tf.Variable(1.0, name="w2") 9 10 print(w1 is w1_p, w2 is w2_p)11 #输出12 #True  False
  variable_scope相当于命名空间   reuse标志位,判断命名空间内的variable是否重用(共享)

3.字典映射

  有时候我们参数太多,而且还不尽相同,C++种使用数据结构去存储,那么TF当然可以使用一些数据库,最简单的直接使用字典去存储。

1 parameters = { 2     'w1': tf.Variable(tf.truncated_normal([3, 3, 1, 64], dtype=tf.float32, stddev=1e-1), name='w1'), 3     'w2': tf.Variable(tf.truncated_normal([3, 3, 64, 64], dtype=tf.float32, stddev=1e-1), name='w2'), 4     'w3': tf.Variable(tf.truncated_normal([3, 3, 64, 128], dtype=tf.float32, stddev=1e-1), name='w3'), 5     'w4': tf.Variable(tf.truncated_normal([3, 3, 128, 128], dtype=tf.float32, stddev=1e-1), name='w4'), 6     'w5': tf.Variable(tf.truncated_normal([3, 3, 128, 256], dtype=tf.float32, stddev=1e-1), name='w5'), 7     'fc1': tf.Variable(tf.truncated_normal([256*28*28, 1024], dtype=tf.float32, stddev=1e-2), name='fc1'), 8     'fc2': tf.Variable(tf.truncated_normal([1024, 1024], dtype=tf.float32, stddev=1e-2), name='fc2'), 9     'softmax': tf.Variable(tf.truncated_normal([1024, 10], dtype=tf.float32, stddev=1e-2), name='fc3'),10     'bw1': tf.Variable(tf.random_normal([64])),11     'bw2': tf.Variable(tf.random_normal([64])),12     'bw3': tf.Variable(tf.random_normal([128])),13     'bw4': tf.Variable(tf.random_normal([128])),14     'bw5': tf.Variable(tf.random_normal([256])),15     'bc1': tf.Variable(tf.random_normal([1024])),16     'bc2': tf.Variable(tf.random_normal([1024])),17     'bs': tf.Variable(tf.random_normal([10]))18 }
1 # 第一卷积层 2     conv1 = conv2d(x_, _parameters['w1'], _parameters['bw1']) 3     lrn1 = lrn(conv1) 4     pool1 = max_pool(lrn1, 2) 5  6     # 第二卷积层 7     conv2 = conv2d(pool1, _parameters['w2'], _parameters['bw2']) 8     lrn2 = lrn(conv2) 9     pool2 = max_pool(lrn2, 2)10 11     # 第三卷积层12     conv3 = conv2d(pool2, _parameters['w3'], _parameters['bw3'])13 14     # 第四卷积层15     conv4 = conv2d(conv3, _parameters['w4'], _parameters['bw4'])16 17     # 第五卷积层18     conv5 = conv2d(conv4, _parameters['w5'], _parameters['bw5'])19     pool5 = max_pool(conv5, 2)

 

 参考:

    https://blog.csdn.net/u012436149/article/details/53696970

    https://blog.csdn.net/u011974639/article/details/76146822

    https://blog.csdn.net/roseki/article/details/70832143

转载于:https://www.cnblogs.com/wjy-lulu/p/9036089.html

你可能感兴趣的文章
Windows下使用命令创建rar压缩包
查看>>
HTML --块
查看>>
在DLL中获取主进程窗口句柄
查看>>
基于消息队列的双向通信
查看>>
一个不错的loading效果
查看>>
高中学渣逆袭入“大学”:如今月收入达五位数
查看>>
Debian允许root用户登录
查看>>
C++ - this指针
查看>>
Google Test and Google Mock Introduction
查看>>
Spring整合Struts2
查看>>
exwc,system,passthru,shell_wxwc讲解
查看>>
BPM表单设计器公式设计参考
查看>>
近万字长文,设计分布式系统需要考虑因素的都在这里!
查看>>
linux的文件系统
查看>>
MySQL测试
查看>>
分析的套路
查看>>
使用pure-ftpd搭建ftp服务
查看>>
mysql 中的varchar(255) uft-8 的格式到底能放多少汉字?
查看>>
python 实现儿童算术游戏
查看>>
IPSEC ×××的复习
查看>>