我只是试着找出如何使用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
我是TensorFlow的新手.在阅读现有文档时,我发现该术语tensor确实令人困惑.因此,我需要澄清以下问题:
tensor&Variable,tensortf.constant'张量'对比有tf.placeholder什么关系?我有一个像下面的对话框.我想实现一个预测系统动作的LSTM模型.系统动作被描述为位向量.并且用户输入被计算为字嵌入,其也是位向量.
t1: user: "Do you know an apple?", system: "no"(action=2)
t2: user: "xxxxxx", system: "yyyy" (action=0)
t3: user: "aaaaaa", system: "bbbb" (action=5)
Run Code Online (Sandbox Code Playgroud)
所以我想要实现的是"多对多(2)"模型.当我的模型收到用户输入时,它必须输出系统操作.
但我无法理解LSTM后的return_sequences选项和TimeDistributed图层.要实现"多对多(2)",需要return_sequences==True添加TimeDistributedLSTM后?如果你能更多地描述它们,我感激不尽.
return_sequences:布尔值.是返回输出序列中的最后一个输出,还是返回完整序列.
TimeDistributed:此包装器允许将图层应用于输入的每个时间片.
我想我能理解这个return_sequence选项.但我还不确定TimeDistributed.如果我添加一个TimeDistributedLSTM之后,模型是否与下面的"我的多对多(2)"相同?所以我认为Dense图层适用于每个输出.

我对机器学习/ python/ubuntu比较新.
我有一组.jpg格式的图像,其中一半包含我想要学习的功能,一半不需要.我找不到将它们转换为所需的lmdb格式的方法.
我有必要的文本输入文件.
我的问题是,任何人都可以提供有关如何convert_imageset.cpp在ubuntu终端中使用的分步指南吗?
谢谢
machine-learning image-processing computer-vision deep-learning caffe
可以在这里改进Keras文档.阅读完本文后,我仍然不明白这是怎么回事:Keras.io.preprocessing.sequence.pad_sequences
有人可以阐明这个功能的作用,并且理想情况下提供一个例子吗?
categorical_accuracy和sparse_categorical_accuracyKeras有什么区别?这些指标的文档中没有任何提示,并且通过询问谷歌博士,我也没有找到答案.
源代码可以在这里找到:
def categorical_accuracy(y_true, y_pred):
return K.cast(K.equal(K.argmax(y_true, axis=-1),
K.argmax(y_pred, axis=-1)),
K.floatx())
def sparse_categorical_accuracy(y_true, y_pred):
return K.cast(K.equal(K.max(y_true, axis=-1),
K.cast(K.argmax(y_pred, axis=-1), K.floatx())),
K.floatx())
Run Code Online (Sandbox Code Playgroud) classification machine-learning neural-network deep-learning keras
(已添加此问题的更新.)
我是比利时根特大学的研究生; 我的研究是用深度卷积神经网络进行情感识别.我正在使用Caffe框架来实现CNN.
最近我遇到了关于班级失衡的问题.我正在使用9216个训练样本,约 5%标记为阳性(1),其余样品标记为阴性(0).
我正在使用SigmoidCrossEntropyLoss图层来计算损失.在训练时,即使在几个时期之后,损失也会减少并且准确度非常高.这是由于不平衡:网络总是预测为负(0).(精确度和召回率均为零,支持此声明)
为了解决这个问题,我想根据预测 - 真值组合来衡量对损失的贡献(严厉惩罚假阴性).我的导师/教练还建议我在通过随机梯度下降(sgd)反向传播时使用比例因子:该因子将与批次中的不平衡相关联.仅包含负样本的批次根本不会更新权重.
我只向Caffe添加了一个自定义图层:报告其他指标,如精度和召回.我对Caffe代码的经验有限,但我有很多编写C++代码的专业知识.
任何人都可以帮助我或指出我如何调整SigmoidCrossEntropyLoss和Sigmoid层以适应以下变化:
提前致谢!
我按照Shai的建议加入了InfogainLossLayer.我还添加了另一个自定义层,H根据当前批次中的不平衡构建了infogain矩阵.
目前,矩阵配置如下:
H(i, j) = 0 if i != j
H(i, j) = 1 - f(i) if i == j (with f(i) = the frequency of class i in the batch)
Run Code Online (Sandbox Code Playgroud)
我计划将来为矩阵试验不同的配置.
我已经用10:1的不平衡测试了这个.结果表明网络现在正在学习有用的东西:( 30个时期后的结果)
在这个页面中,据说:
[...] skip-gram反转上下文和目标,并尝试从其目标词中预测每个上下文单词[...]
然而,看看它产生的训练数据集,X和Y对的内容似乎是可互换的,因为那两对(X,Y):
(quick, brown), (brown, quick)
那么,为什么在上下文和目标之间区分那么多,如果最终是同一个东西呢?
另外,在word2vec上进行Udacity的深度学习课程练习,我想知道为什么他们似乎在这个问题上做了很多差异:
skip-gram的另一种选择是另一种名为CBOW(连续词袋)的Word2Vec模型.在CBOW模型中,您不是从单词向量预测上下文单词,而是从其上下文中所有单词向量的总和预测单词.实施和评估在text8数据集上训练的CBOW模型.
这会产生相同的结果吗?
我试图做一个简单的事情,用火炬训练带有随机梯度下降(SGD)的线性模型:
import numpy as np
import torch
from torch.autograd import Variable
import pdb
def get_batch2(X,Y,M,dtype):
X,Y = X.data.numpy(), Y.data.numpy()
N = len(Y)
valid_indices = np.array( range(N) )
batch_indices = np.random.choice(valid_indices,size=M,replace=False)
batch_xs = torch.FloatTensor(X[batch_indices,:]).type(dtype)
batch_ys = torch.FloatTensor(Y[batch_indices]).type(dtype)
return Variable(batch_xs, requires_grad=False), Variable(batch_ys, requires_grad=False)
def poly_kernel_matrix( x,D ):
N = len(x)
Kern = np.zeros( (N,D+1) )
for n in range(N):
for d in range(D+1):
Kern[n,d] = x[n]**d;
return Kern
## data params
N=5 # data set size
Degree=4 # number dimensions/features
D_sgd = …Run Code Online (Sandbox Code Playgroud) 如何计算PyTorch模型中的参数总数?类似于model.count_params()Keras的东西.