我正在将下面网址中的学生-教师模型转换为keras一个。
https://github.com/chengshengchan/model_compression/blob/master/teacher-student.py
我怎样才能给两个模型(学生,老师)提供输入,而仅从喀拉拉邦的学生那里获得一个输出?我将使用可训练= false设置老师的所有张量,并将损失函数设置为学生和老师的输出之间的差异,如下所示:
tf_loss = tf.nn.l2_loss(teacher - student)/batch_size
Run Code Online (Sandbox Code Playgroud)
据我所知,在定义model.fit时,可以仅输入一个模型。但是在这种情况下,我应该同时采用教师和学生模式。
预先感谢!
我是r-cnn的新手。
面膜r-cnn纸上有术语AP,AP50,AP75。50、75是小的后缀,对不起,我不能缩小它的大小。无论如何,论文说它是超过IOU阈值的平均值。对于AP50,仅对与地面真实性进行比较的区域中超过50%的候选者进行计数,对于AP75,仅对75%的区域中的候选者进行计数。那么什么是空AP?我知道AP使用70%IoU阈值,但事实并非如此。因为只有AP比AP75低。
此外,还有其他一些我不太理解的术语。它们是AP,M,L。我知道它们的意思是小,中,大。然后有什么标准可以确定它们有多大。只是说小,中,大让我有些困惑。
提前致谢!
我有一个关于为什么将 TensorFlow 变量设置为small 的问题stddev
。我想很多人都会从 TensorFlow 初学者指南中测试 MNIST 测试代码。接下来,第一层的权重使用0.1truncated_normal
来初始化stddev
。我猜想如果将其设置为更大的值,那么结果将是相同的,这是完全准确的。但是虽然增加了纪元数,但它不起作用。有谁知道这个原因吗?
原来的 :
W_layer = tf.Variable(tf.truncated_normal([inp.get_shape()[1].value, size],stddev=0.1), name='w_'+name)
#result : (990, 0.93000001, 0.89719999)
Run Code Online (Sandbox Code Playgroud)
修改的 :
W_layer = tf.Variable(tf.truncated_normal([inp.get_shape()[1].value, size],stddev=200), name='w_'+name)
#result : (99990, 0.1, 0.098000005)
Run Code Online (Sandbox Code Playgroud) 我写了下面的代码,但它不像我期望的那样工作.我预计'true'
会打印出来,而是'false'
打印出来.你能解释一下为什么会这样吗?
import tensorflow as tf
#y_ = tf.constant([0, 1, 0])
y = tf.constant([0, 1, 0])
with tf.Session() as sess:
b = sess.run(tf.equal(y, y))
if b is True:
print 'true'
else:
print 'false'
Run Code Online (Sandbox Code Playgroud)