使用tf.train.MonitoredTrainingSession它编写检查点文件时会以某种方式写入多个元图.我究竟做错了什么?
我把它剥离到下面的代码:
import tensorflow as tf
global_step = tf.Variable(0, dtype=tf.int32, trainable=False, name="global_step")
train = tf.assign(global_step, global_step + 1)
saver = tf.train.Saver()
hooks = [(tf.train.CheckpointSaverHook(checkpoint_dir=output_path + "test1/ckpt/",
save_steps = 10,
saver = saver))]
with tf.train.MonitoredTrainingSession(master = '',
is_chief = True,
checkpoint_dir = None,
hooks = hooks,
save_checkpoint_secs = None,
save_summaries_steps = None,
save_summaries_secs = None) as mon_sess:
for i in range(30):
if mon_sess.should_stop():
break
try:
gs, _ = mon_sess.run([global_step, train])
print(gs)
except (tf.errors.OutOfRangeError,tf.errors.CancelledError) as e:
break
finally:
pass
Run Code Online (Sandbox Code Playgroud)
运行此操作将提供重复的元图,如张量板警告所示: …
我不太大的表挂在ALTER命令上.会是什么呢?
只有150k行,42个字段总共142 MB.InnoDB存储引擎和服务器版本:5.5.44-MariaDB MariaDB Server.1个字段'slotindex'是主键:bigint(20)和BTREE类型.
命令:
MariaDB [mydb]> ALTER TABLE `runs` CHANGE `p_w_trans_x` `p_w_tran_x` FLOAT NOT NULL;
Stage: 1 of 2 'copy to tmp table' 65.7% of stage done
Stage: 2 of 2 'Enabling keys' 0% of stage done
Run Code Online (Sandbox Code Playgroud)
在这个阶段2将永远完全挂起.
进程列表如下:
MariaDB [(none)]> show full processlist;
+--------+------+-----------------+-----------+---------+-------+---------------------------------+---------------------------------------------------------------------+----------+
| Id | User | Host | db | Command | Time | State | Info | Progress |
+--------+------+-----------------+-----------+---------+-------+---------------------------------+---------------------------------------------------------------------+----------+
| 274226 | root | localhost:45423 | edc_proxy | Sleep | 16043 | …Run Code Online (Sandbox Code Playgroud) 这让我很困惑:
```
a=np.array([1,2,np.nan,3]) # an array with a nan
print(np.isnan(a)[2]) # it truly is a nan
print(a[2]) # it quacks like a nan
print(np.nan is np.nan) # nan's can be compared
print(a[2] is np.nan) # But then, this isn't a nan after all!!??
>>> True
>>> nan
>>> True
>>> False
```
Run Code Online (Sandbox Code Playgroud)
我知道我们不允许比较nan的==,但is应该被允许吗?毕竟它在比较nan与自身时有效吗?
感谢您对此处发生的任何提示.
这可以通过以下方式完成tf.cond,但是它将从手册中更新图形的两个分支:
请注意,条件执行仅适用于true_fn和false_fn中定义的操作.考虑以下简单程序:
z = tf.multiply(a, b)
result = tf.cond(x < y, lambda: tf.add(x, z), lambda: tf.square(y))
Run Code Online (Sandbox Code Playgroud)
如果
x < y,tf.add将执行操作并且不执行tf.square操作.由于cond的至少一个分支需要z,因此总是无条件地执行tf.multiply操作.
如何有效地执行此操作tf.multiply(即仅在何时执行x > Y)?
更具体地说,我正在尝试做什么:
var1 = tf.Variable(tf.zeros(4), trainable=False, name='var1')
update_var1 = tf.assign(var1,var1 +1)
training = tf.placeholder(tf.bool)
def f1():
with tf.control_dependencies([update_var1]):
return var1*1.1
def f2():
return var1 * 1.1
final = tf.cond(training, f1, f2)
sess.run(final, feed_dict={training:False})
Run Code Online (Sandbox Code Playgroud)
每次评估final时,这将使var1增加1,无论值是什么training,问题是什么tf.cond,因为手动它可以工作:
var1 = tf.Variable(tf.zeros(4), trainable=False, name='var1')
update_var1 …Run Code Online (Sandbox Code Playgroud) 我试图gen_dataset_ops在 tensorflow 中找到函数或类的定义,它的源代码在这里。我发现很多地方都是这样导入的:
from tensorflow.python.ops import gen_dataset_ops
Run Code Online (Sandbox Code Playgroud)
但我找不到它的定义位置,我希望找到类似的东西:
def gen_dataset_ops(...):
#Do something clever
return
Run Code Online (Sandbox Code Playgroud)
我一般不太了解python模块的解剖结构,所以我可能在这里缺少一些基础知识,..欢迎任何提示!