标签: deep-learning

为什么要在 softmax 中使用温度?

我最近在研究 CNN,我想知道 softmax 公式中温度的函数是什么?为什么我们应该使用高温来查看概率分布中更软的范数?Softmax 公式

machine-learning deep-learning conv-neural-network softmax densenet

26
推荐指数
1
解决办法
2万
查看次数

有没有办法检查 python 中两个完整句子之间的相似性?

我正在制作一个这样的项目: https://www.youtube.com/watch?v =dovB8uSUUXE&feature=youtu.be 但我遇到了麻烦,因为我需要检查句子之间的相似性,例如:如果用户说:“那个人穿红色T恤”而不是“那个男孩穿红色T恤” 我想要一种方法来检查这两个句子之间的相似度,而不必检查每个单词之间的相似度有没有办法做到这一点在Python中?

我正在尝试找到一种方法来检查两个句子之间的相似性。

python nlp nltk deep-learning sentence-similarity

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

设置GLOG_minloglevel = 1以防止来自Caffe的shell输出

我正在使用Caffe,它在加载神经网络时会向shell打印大量输出.
我想抑制输出,这可以通过设置GLOG_minloglevel=1运行Python脚本来完成.我尝试使用以下代码执行此操作,但我仍然从加载网络获得所有输出.如何正确抑制输出?

os.environ["GLOG_minloglevel"] = "1"
net = caffe.Net(model_file, pretrained, caffe.TEST)
os.environ["GLOG_minloglevel"] = "0"
Run Code Online (Sandbox Code Playgroud)

python neural-network glog deep-learning caffe

25
推荐指数
2
解决办法
1万
查看次数

TensorFlow - 将L2正则化和丢失引入网络.它有意义吗?

我目前正在玩ANN,这是Udactity DeepLearning课程的一部分.

我成功建立并培训了网络,并在所有权重和偏差上引入了L2正则化.现在我正在尝试隐藏图层的丢失,以便改进泛化.我想知道,将L2正则化引入隐藏层并在同一层上丢失是否有意义?如果是这样,如何正确地做到这一点?

在辍学期间,我们实际上关闭了隐藏层的一半激活并使其余神经元输出的量加倍.在使用L2时,我们计算所有隐藏权重的L2范数.但我不知道如何使用dropout来计算L2.我们关闭了一些激活,我们不应该从L2计算中删除现在"未使用"的权重吗?关于这个问题的任何参考都会有用,我还没有找到任何信息.

如果您有兴趣,我的具有L2正规化的ANN代码如下:

#for NeuralNetwork model code is below
#We will use SGD for training to save our time. Code is from Assignment 2
#beta is the new parameter - controls level of regularization. Default is 0.01
#but feel free to play with it
#notice, we introduce L2 for both biases and weights of all layers

beta = 0.01

#building tensorflow graph
graph = tf.Graph()
with graph.as_default():
      # Input data. For the training data, we use a placeholder …
Run Code Online (Sandbox Code Playgroud)

machine-learning neural-network regularized deep-learning tensorflow

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

Keras关于层数的混淆

我对Keras模型中使用的层数感到困惑.文件在这个问题上相当不透明.

根据Jason Brownlee的说法,第一层技术上由两层组成,即输入层,由input_dim隐藏层指定.请参阅他博客上的第一个问题.

在所有Keras文档中,第一层通常被指定为 model.add(Dense(number_of_neurons, input_dim=number_of_cols_in_input, activtion=some_activation_function)).

因此,我们可以制作的最基本的模型是:

 model = Sequential()
 model.add(Dense(1, input_dim = 100, activation = None))
Run Code Online (Sandbox Code Playgroud)

该模型是否由单个层组成,其中100维输入通过单个输入神经元传递,或者它是否由两个层组成,首先是100维输入层,第二个是1维隐藏层?

此外,如果我要指定这样的模型,它有多少层?

model = Sequential()
model.add(Dense(32, input_dim = 100, activation = 'sigmoid'))
model.add(Dense(1)))
Run Code Online (Sandbox Code Playgroud)

这是一个具有1个输入层,1个隐藏层和1个输出层的模型,还是具有1个输入层和1个输出层的模型?

python neural-network deep-learning keras tensorflow

25
推荐指数
2
解决办法
9125
查看次数

ResNet:训练期间的准确率为100%,但使用相同数据的预测准确率为33%

我是机器学习和深度学习的新手,为了学习目的,我尝试使用Resnet.我试图过度填充小数据(3个不同的图像),看看我是否可以获得几乎0的损失和1.0的准确度 - 我做到了.

问题是对训练图像的预测(即用于训练的相同3个图像)不正确.

训练图像

图片1 图片2 图片3

图像标签

[1,0,0],[0,1,0],[0,0,1]

我的python代码

#loading 3 images and resizing them
imgs = np.array([np.array(Image.open("./Images/train/" + fname)
                          .resize((197, 197), Image.ANTIALIAS)) for fname in
                 os.listdir("./Images/train/")]).reshape(-1,197,197,1)
# creating labels
y = np.array([[1,0,0],[0,1,0],[0,0,1]])
# create resnet model
model = ResNet50(input_shape=(197, 197,1),classes=3,weights=None)

# compile & fit model
model.compile(loss='categorical_crossentropy', optimizer='adam',metrics=['acc'])

model.fit(imgs,y,epochs=5,shuffle=True)

# predict on training data
print(model.predict(imgs))
Run Code Online (Sandbox Code Playgroud)

该模型过度拟合数据:

3/3 [==============================] - 22s - loss: 1.3229 - acc: 0.0000e+00
Epoch 2/5
3/3 [==============================] - 0s - …
Run Code Online (Sandbox Code Playgroud)

machine-learning deep-learning keras

25
推荐指数
1
解决办法
9940
查看次数

PyTorch内存模型:"torch.from_numpy()"vs"torch.Tensor()"

我正在尝试深入了解PyTorch Tensor内存模型的工作原理.

# input numpy array
In [91]: arr = np.arange(10, dtype=float32).reshape(5, 2)

# input tensors in two different ways
In [92]: t1, t2 = torch.Tensor(arr), torch.from_numpy(arr)

# their types
In [93]: type(arr), type(t1), type(t2)
Out[93]: (numpy.ndarray, torch.FloatTensor, torch.FloatTensor)

# ndarray 
In [94]: arr
Out[94]: 
array([[ 0.,  1.],
       [ 2.,  3.],
       [ 4.,  5.],
       [ 6.,  7.],
       [ 8.,  9.]], dtype=float32)
Run Code Online (Sandbox Code Playgroud)

我知道PyTorch张量器共享 NumPy ndarrays 的内存缓冲区.因此,改变一个将反映在另一个.所以,在这里我正在切片并更新Tensor中的一些值t2

In [98]: t2[:, 1] = 23.0
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,它已经更新t2,arr因为它们共享相同的内存缓冲区.

In …
Run Code Online (Sandbox Code Playgroud)

python numpy multidimensional-array deep-learning pytorch

25
推荐指数
3
解决办法
1万
查看次数

如何理解SpatialDropout1D以及何时使用它?

偶尔我会看到一些模型正在使用SpatialDropout1D而不是Dropout.例如,在词性标注神经网络中,他们使用:

model = Sequential()
model.add(Embedding(s_vocabsize, EMBED_SIZE,
                    input_length=MAX_SEQLEN))
model.add(SpatialDropout1D(0.2)) ##This
model.add(GRU(HIDDEN_SIZE, dropout=0.2, recurrent_dropout=0.2))
model.add(RepeatVector(MAX_SEQLEN))
model.add(GRU(HIDDEN_SIZE, return_sequences=True))
model.add(TimeDistributed(Dense(t_vocabsize)))
model.add(Activation("softmax"))
Run Code Online (Sandbox Code Playgroud)

根据Keras的文件,它说:

此版本执行与Dropout相同的功能,但它会丢弃整个1D功能图而不是单个元素.

但是,我无法理解entrie 1D功能的含义.更具体地说,我无法SpatialDropout1Dquora中解释的相同模型中进行可视化.有人可以使用与quora相同的模型来解释这个概念吗?

另外,在什么情况下我们会用SpatialDropout1D而不是Dropout

machine-learning deep-learning conv-neural-network keras dropout

25
推荐指数
2
解决办法
6717
查看次数

什么是Caffe中的`weight_decay`元参数?

看一个'solver.prototxt'在BVLC/caffe git上发布的例子,有一个训练元参数

weight_decay: 0.04
Run Code Online (Sandbox Code Playgroud)

这个元参数是什么意思?我应该赋予它什么价值?

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

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

Keras的多个输出

我有一个问题,它涉及在给定预测变量矢量时预测两个输出.假定一个预测向量的样子x1, y1, att1, att2, ..., attn,它说x1, y1是坐标和att's连接到的发生在其他属性x1, y1坐标.根据这个预测器集我想预测x2, y2.这是一个时间序列问题,我试图使用多次回归来解决.我的问题是如何设置keras,它可以在最后一层给我2个输出.我已经解决了keras中的简单回归问题,并且代码在我的github中是可用的.

python regression neural-network deep-learning keras

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