我不太确定tf.nn.separable_conv2d到底是做什么的.似乎pointwise_filter是生成下一层的一个像素时不同特征的缩放因子.但我不确定我的解释是否正确.这种方法有没有参考,有什么好处?
tf.nn.separable_conv2d生成与tf.nn.conv2d相同的形状.我想我可以用tf.nn.separable_conv2d替换tf.nn.conv2d.但是使用tf.nn.separable_conv2d时的结果似乎非常糟糕.网络很早就停止了学习.对于MNIST数据集,精度只是随机猜测~10%.
我想当我将pointwise_filter值设置为全1.0并使其无法训练时,我会得到与tf.nn.conv2d相同的东西.但不是真的......仍然有~10%的准确性.
但是当tf.nn.conv2d与相同的超参数一起使用时,精度可以达到99%.为什么?
此外,它需要channel_multiplier*in_channels <out_channels.为什么?channel_multiplier的作用是什么?
谢谢.
编辑:
之前我使用channel_multiplier作为1.0.也许这是一个糟糕的选择.将其更改为2.0后,精度会变得更好.但是channel_multiplier的作用是什么?为什么1.0不是一个好的价值?
在Tensorflow中,我想将标量张量转换为整数.有可能吗?
我需要创建一个循环,循环的索引是标量张量,并且在循环体内,我想使用索引来访问张量数组中的条目.
例如:
idx = tf.constant(0)
c = lambda i : tf.less(i, 10)
def body(idx) :
i = # convert idx to int
b = weights[i] # access an entry in a tensor array, tensor cannot be used directly
....
return idx+1
tf.while_loop(c, body, [idx])
Run Code Online (Sandbox Code Playgroud) 从我从 mongodb 文档中读取的内容来看,查询中只使用了一个索引。但是,我发现其他一些复合索引的存在会影响此查询的质量。下面是一个例子:
db.products.ensureIndex({'b' : 1, 'ld' : 1, 'li' : 1})
db.products.find({'b' : {$in : b.ct}, 'ld' : {$lt : d}}).limit(24).sort({'li' : 1}).explain ()
{ "cursor" : "BtreeCursor b_1_l.d_1_l.i_1 multi",
"isMultiKey" : true,
"n" : 24,
"nscannedObjects" : 1079,
"nscanned" : 1102,
"nscannedObjectsAllPlans" : 1182,
"nscannedAllPlans" : 1205,
"scanAndOrder" : true,
"indexOnly" : false,
"nYields" : 0,
"nChunkSkips" : 0,
....}
Run Code Online (Sandbox Code Playgroud)
db.products.ensureIndex({'li' :1, 'b' : 1, 'ld' : 1})
db.products.find({'b' : {$in : b.ct}, 'ld' : {$lt : d}}).limit(24).sort({'li' …
我使用meteor,iron-router和d3.d3用于根据数据反应显示饼图,我在铁路由器的数据函数中计算.所以,我希望d3在dom到位时运行.
但是,我不知道应该把d3代码放在哪里.我曾经把它放在我生成数据的数据函数中.但是,有时在dom未就绪时计算数据函数(因此d3无法绘制图表).
我想在dom完全渲染后运行d3,并且该函数可以访问数据函数的结果.我试图使用挂钩onAfterAction,但似乎这个函数无法访问数据.我也尝试使用Template.rendered,就像stackoverflow中的其他帖子所说的那样.但是,渲染的函数似乎只运行一次,并且在数据更改时不会重新运行.我把渲染的函数放在Tracker.autorun函数中,但它仍然只运行一次.
那么,有没有一个地方可以反应性地运行d3代码,可以访问渲染的dom以及数据字段?
谢谢.