我最近在研究 CNN,我想知道 softmax 公式中温度的函数是什么?为什么我们应该使用高温来查看概率分布中更软的范数?Softmax 公式
machine-learning deep-learning conv-neural-network softmax densenet
我正在制作一个这样的项目: https://www.youtube.com/watch?v =dovB8uSUUXE&feature=youtu.be 但我遇到了麻烦,因为我需要检查句子之间的相似性,例如:如果用户说:“那个人穿红色T恤”而不是“那个男孩穿红色T恤” 我想要一种方法来检查这两个句子之间的相似度,而不必检查每个单词之间的相似度有没有办法做到这一点在Python中?
我正在尝试找到一种方法来检查两个句子之间的相似性。
我正在使用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) 我目前正在玩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
我对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个输出层的模型?
我是机器学习和深度学习的新手,为了学习目的,我尝试使用Resnet.我试图过度填充小数据(3个不同的图像),看看我是否可以获得几乎0的损失和1.0的准确度 - 我做到了.
问题是对训练图像的预测(即用于训练的相同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) 我正在尝试深入了解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) 偶尔我会看到一些模型正在使用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功能的含义.更具体地说,我无法SpatialDropout1D在quora中解释的相同模型中进行可视化.有人可以使用与quora相同的模型来解释这个概念吗?
另外,在什么情况下我们会用SpatialDropout1D而不是Dropout?
machine-learning deep-learning conv-neural-network keras dropout
看一个'solver.prototxt'在BVLC/caffe git上发布的例子,有一个训练元参数
weight_decay: 0.04
Run Code Online (Sandbox Code Playgroud)
这个元参数是什么意思?我应该赋予它什么价值?
machine-learning neural-network gradient-descent deep-learning caffe
我有一个问题,它涉及在给定预测变量矢量时预测两个输出.假定一个预测向量的样子x1, y1, att1, att2, ..., attn,它说x1, y1是坐标和att's连接到的发生在其他属性x1, y1坐标.根据这个预测器集我想预测x2, y2.这是一个时间序列问题,我试图使用多次回归来解决.我的问题是如何设置keras,它可以在最后一层给我2个输出.我已经解决了keras中的简单回归问题,并且代码在我的github中是可用的.
deep-learning ×10
python ×5
keras ×4
caffe ×2
tensorflow ×2
densenet ×1
dropout ×1
glog ×1
nlp ×1
nltk ×1
numpy ×1
pytorch ×1
regression ×1
regularized ×1
softmax ×1