在tensorflow 1.4中,我发现了两个执行批量规范化的函数,它们看起来相同:
我应该使用哪种功能?哪一个更稳定?
python neural-network deep-learning tensorflow batch-normalization
我正在使用 BatchNorm 层。use_global_stats我知道通常false为训练和测试/部署而设置的设置的含义true。这是我在测试阶段的设置。
layer {
name: "bnorm1"
type: "BatchNorm"
bottom: "conv1"
top: "bnorm1"
batch_norm_param {
use_global_stats: true
}
}
layer {
name: "scale1"
type: "Scale"
bottom: "bnorm1"
top: "bnorm1"
bias_term: true
scale_param {
filler {
value: 1
}
bias_filler {
value: 0.0
}
}
}
Run Code Online (Sandbox Code Playgroud)
在solver.prototxt中,我使用了Adam方法。我发现我的案例中出现了一个有趣的问题。如果我选择,那么当我在测试阶段base_lr: 1e-3设置时,我会得到很好的性能。use_global_stats: false然而,如果我选择,那么当我在测试阶段base_lr: 1e-4设置时,我会得到很好的性能。use_global_stats: true它证明了base_lr对批规范设置的影响(即使我使用了 Adam 方法)?你能提出任何理由吗?谢谢大家
我的特征向量大小为 1x4098。每个特征向量对应一个浮点数(温度)。在训练中,我有 10.000 个样本。因此,我的训练集大小为 10000x4098,标签为 10000x1。我想使用线性回归模型从训练数据中预测温度。我正在使用具有 MSE 损失的 3 个隐藏层(512、128、32)。但是,我使用 tensorflow 只获得了 80% 的准确率。您能否向我建议其他损失函数以获得更好的性能?
我正在使用skimage填充二进制输入图像(左侧)的孔。这是我的代码
from skimage import ndimage
img_fill_holes=ndimage.binary_fill_holes(binary).astype(int)
Run Code Online (Sandbox Code Playgroud)
但是,以上代码的结果无法完全填补二进制图像的空白。这意味着输出仍然保留圆内的孔。如何完全填充圆孔?