我注意到训练中频繁发生的是NAN s的引入。 通常情况下,似乎是通过内部产品/完全连接或卷积层吹起来的重量来引入的。 这是否发生,因为梯度计算正在炸毁? 或者是因为重量初始化(如果是的话,为什么重量初始化有这个效果)? 或者这可能是由input数据的性质造成的? 这里最重要的问题是: 在训练期间发生NAN的最常见原因是什么? 其次,有什么方法来打击这个(为什么他们工作)?
我有一个Rails控制器,我正在设置一个实例variables – @user_name = "Some Username" 在我的.slim模板中,我使用咖啡引擎来生成JavaScript,并希望从客户端打印出用户名 – sie javascript代码 – coffee: $(document).ready -> name = "#{@user_name}" alert name 但是,这是正在生成的JavaScript? $(document).ready(function() { var name; name = "" + this.my_name; alert(name); } 如何在我的CoffeeScript代码中访问控制器实例variables? 我把这个标记为haml,因为我猜测haml在使用CoffeeScript时会遇到同样的问题。
我想用一个向量标签的咖啡,而不是整数。 我查了一些答案,看来HDF5是一个更好的方法。 但是,然后我陷入了像这样的错误: outer_num_ * inner_num_ == bottom[1]->count() :34]检查失败: outer_num_ * inner_num_ == bottom[1]->count() (50与200)标签数量必须匹配预测数量; 例如,如果标签轴== 1且预测形状是(N,C,H,W),则标签计数(标签数量)必须是N*H*W ,其中整数值在{0,1,…, C-1}。 与HDF5创build为: f = h5py.File('train.h5', 'w') f.create_dataset('data', (1200, 128), dtype='f8') f.create_dataset('label', (1200, 4), dtype='f4') 我的networking是由以下产生的: def net(hdf5, batch_size): n = caffe.NetSpec() n.data, n.label = L.HDF5Data(batch_size=batch_size, source=hdf5, ntop=2) n.ip1 = L.InnerProduct(n.data, num_output=50, weight_filler=dict(type='xavier')) n.relu1 = L.ReLU(n.ip1, in_place=True) n.ip2 […]
我有火车和标签数据data.mat。 (我有200个具有6000个特征的训练数据,标签是保存在data.mat中的(-1,+1))。 我正在尝试在hdf5中转换我的数据并使用以下命令运行Caffe: load data.mat hdf5write('my_data.h5', '/new_train_x', single( reshape(new_train_x,[200, 6000, 1, 1]) ) ); hdf5write('my_data.h5', '/label_train', single( reshape(label_train,[200, 1, 1, 1]) ), 'WriteMode', 'append' ); 而我的layer.prototxt(只是数据层)是: layer { type: "HDF5Data" name: "data" top: "new_train_x" # note: same name as in HDF5 top: "label_train" # hdf5_data_param { source: "/path/to/list/file.txt" batch_size: 20 } include { phase: TRAIN […]
我希望在我的模型中使用InfogainLosstypes的丢失图层。 但是我很难正确定义它。 有没有关于使用INFOGAIN_LOSS图层的任何教程/例子? 该层的input,类概率,是否为SOFTMAX层的输出,还是足以input完全连接层的“顶层”? INFOGAIN_LOSS需要三个input:类概率,标签和matrixH matrixH可以作为层参数infogain_loss_param { source: "fiename" } 。 假设我有一个python脚本,用numpy.array dtype='f4' (其中L是模型中的标签数(L,L)计算H为numpy.array的形状(L,L) )。 我怎样才能将我的numpy.array转换成可以作为infogain_loss_param { source }给模型的binproto文件? 假设我想把H作为第三个input(底部)提供给损失层(而不是模型参数)。 我该怎么做? 我是否定义了一个“顶”是H的新数据层? 如果是这样的话,每次训练迭代都不会增加这个层的数据,就像训练数据增加一样? 我如何定义多个不相关的input“数据”层,caffe如何知道从批处理的训练/testing“数据”层中读取,而从H “数据”层知道只读取一次所有训练处理?
我从Caffe开始,这个例子运行得很好。 我有火车和标签数据data.mat 。 (我有300个训练数据,有30个特征,标签是(-1, +1) ,保存在data.mat )。 但是,我不太明白如何使用caffe来实现我自己的数据集? 有没有一步一步教程可以教我? 非常感谢!!!! 任何意见将不胜感激!