相关疑难解决方法(0)

什么是Caffe中的'lr_policy`?

我只是试着找出如何使用Caffe.为此,我只是看了一下.prototxt示例文件夹中的不同文件.有一个我不明白的选择:

# The learning rate policy
lr_policy: "inv"
Run Code Online (Sandbox Code Playgroud)

可能的值似乎是:

  • "fixed"
  • "inv"
  • "step"
  • "multistep"
  • "stepearly"
  • "poly"

有人可以解释一下这些选择吗?

machine-learning neural-network gradient-descent deep-learning caffe

34
推荐指数
2
解决办法
3万
查看次数

InfogainLoss层

我希望InfogainLoss在我的模型中使用类型的损失层.但我很难正确定义它.

  1. 关于INFOGAIN_LOSS图层的使用是否有任何教程/示例?

  2. 这个层的输入,类概率,应该是SOFTMAX层的输出,还是足以输入完全连接层的"顶部"?

INFOGAIN_LOSS需要三个输入:类概率,标签和矩阵H.矩阵H可以作为层参数提供infogain_loss_param { source: "fiename" }.
假设我有一个计算一个Python脚本Hnumpy.array形状(L,L)dtype='f4'(其中L是标签在我的模型的数量).

  1. 如何将我转换numpy.arraybinproto可以作为infogain_loss_param { source }模型提供的文件?

  2. 假设我想H作为损失层的第三个输入(底部)提供(而不是作为模型参数).我怎样才能做到这一点?
    我是否定义了一个"顶部"的新数据层H?如果是这样,那么每次训练迭代都不会增加该层的数据,就像训练数据增加一样?如何定义多个不相关的输入"数据"层,以及caffe如何知道从批处理批量读取训练/测试"数据"层,而从H"数据"层知道只读一次所有的训练过程?

numpy protocol-buffers neural-network deep-learning caffe

16
推荐指数
1
解决办法
5837
查看次数

如何用debug_info解释caffe日志?

当在训练期间遇到困难时(nans,损失不会收敛等),通过debug_info: true'solver.prototxt'文件中设置来查看更详细的训练日志有时是有用的.

然后训练日志看起来像:

I1109 ...]     [Forward] Layer data, top blob data data: 0.343971    
I1109 ...]     [Forward] Layer conv1, top blob conv1 data: 0.0645037
I1109 ...]     [Forward] Layer conv1, param blob 0 data: 0.00899114
I1109 ...]     [Forward] Layer conv1, param blob 1 data: 0
I1109 ...]     [Forward] Layer relu1, top blob conv1 data: 0.0337982
I1109 ...]     [Forward] Layer conv2, top blob conv2 data: 0.0249297
I1109 ...]     [Forward] Layer conv2, param blob 0 …
Run Code Online (Sandbox Code Playgroud)

machine-learning neural-network gradient-descent deep-learning caffe

14
推荐指数
1
解决办法
2648
查看次数

Keras Neural Nets,如何删除输出中的NaN值?

我一直使用Keras从我的神经网络中获得一些NaN输出.我每10,000个结果只得到一个NaN.最初我有一个relu激活层进入最终的softmax层.这产生了更多的NaN结果.我将构成网络中最后两个密集层的激活函数从relu更改为sigmoid.这使问题更好,但我仍然得到NaN.关于如何完全消除楠的任何建议?

model = Sequential()
model.add(InputLayer((1, IMG_H, IMG_W)))

model.add(Convolution2D(32, 3, 3, activation = 'relu'))
model.add(Convolution2D(32, 3, 3, activation = 'relu'))
model.add(MaxPooling2D(pool_size = (2, 2)))

model.add(Dropout(0.3))

model.add(Convolution2D(64, 3, 3, activation = 'relu'))
model.add(Convolution2D(64, 3, 3, activation = 'relu'))
model.add(MaxPooling2D(pool_size = (2, 2)))

model.add(Dropout(0.3))

model.add(Flatten())
model.add(Dense(256, activation = 'sigmoid'))
model.add(Dropout(0.3))
model.add(Dense(64, activation = 'sigmoid'))
model.add(Dropout(0.3))
model.add(Dense(categories, activation = 'softmax'))
Run Code Online (Sandbox Code Playgroud)

python floating-point neural-network keras

8
推荐指数
0
解决办法
5515
查看次数

keras LSTM 中的训练损失为 nan

我已经在 google colab 中使用 GPU 调整了这段代码来创建多层 LSTM。它用于时间序列预测。

from keras.models import Sequential
from keras.layers import Dense
from keras.layers import LSTM
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, LSTM, LSTM, BatchNormalization
from keras.optimizers import SGD
model = Sequential()
model.add(LSTM(units = 50, activation = 'relu', return_sequences=True, input_shape= 
(1,len(FeaturesDataFrame.columns))))
model.add(Dropout(0.2))
model.add(LSTM(3, return_sequences=False))
model.add(Dense(1))
opt = SGD(lr=0.01, momentum=0.9, clipvalue=5.0)
model.compile(loss='mean_squared_error', optimizer=opt)
Run Code Online (Sandbox Code Playgroud)

请注意,我使用了渐变剪辑。但是,当我训练这个模型时,它仍然返回 nan 作为训练损失:

history = model.fit(X_t_reshaped, train_labels, epochs=20, batch_size=96, verbose=2)
Run Code Online (Sandbox Code Playgroud)

这是结果

Epoch 1/20
316/316 - 2s - loss: …
Run Code Online (Sandbox Code Playgroud)

time-series deep-learning lstm keras

4
推荐指数
1
解决办法
9008
查看次数