我正在研究tensorflow 0.12,我遇到了铸造问题.以下代码片段做了一件奇怪的事情:
sess = tf.InteractiveSession()
a = tf.constant(1)
b = tf.cast(a, tf.float32)
print b.eval()
Run Code Online (Sandbox Code Playgroud)
我得到一个值:6.86574233e-36
我也试过用tf.to_float()和tf.saturate_cast.两者都给出了相同的结果.
请帮忙.
我试图理解为什么每次火车迭代需要1.5秒的aprox.我使用了这里描述的跟踪方法.我正在使用TitanX Pascal GPU.我的结果看起来很奇怪,似乎每个操作都比较快,而且系统在大多数时间间隔都处于空闲状态.我怎么能从中了解什么是限制系统.
但是,当我大幅减少批量大小时,间隙似乎很接近,这可以在这里看到.
有没有办法从剖析器中了解在操作之间的差距中占用的空间是什么?
谢谢!
编辑:
我正在跑步
我有一个预定义的代码,可以创建Tensorflow图.变量包含在变量范围中,每个变量都有一个预定义的初始化程序.有没有办法改变变量的初始化器?
示例:第一个图定义
with tf.variable_scope('conv1')
w = tf.get_variable('weights')
Run Code Online (Sandbox Code Playgroud)
稍后我想修改变量并将初始化程序更改为Xavier:
with tf.variable_scope('conv1')
tf.get_variable_scope().reuse_variable()
w = tf.get_variable('weights',initializer=tf.contrib.layers.xavier_initializer(uniform=False))
Run Code Online (Sandbox Code Playgroud)
但是,当我重用变量时,初始化程序不会更改.稍后当我这样做时,initialize_all_variables() 我得到默认值而不是Xavier如何更改变量的初始值设定项?谢谢