我是神经网络主题的新手.我遇到了两个术语卷积神经网络和递归神经网络.
我想知道这两个术语是指同一个词,或者,如果没有,它们之间会有什么区别?
虽然"googl'ing"并进行了一些研究,但我无法在AMD硬件上找到任何用于科学GPGPU计算和OpenCL的严肃/流行框架/ sdk .我错过了哪些文献和/或软件?
特别是我对深度学习感兴趣.
据我所知,deeplearning.net推荐使用NVIDIA硬件和CUDA框架.此外,我所知道的所有重要的深度学习框架,如Caffe,Theano,Torch,DL4J,......都专注于CUDA而不打算支持OpenCL/AMD.
此外,人们可以找到大量科学论文以及基于CUDA的深度学习任务的相应文献,但基于OpenCL/AMD的解决方案几乎没有.
在2015/16学年,是否有可能出现基于OpenCL/AMD的新解决方案或现有科学框架?
使用OpenCL/AMD进行深度学习的良好开端是什么?有文献吗?教程?杂项来源?
我整天都在分析一个应用程序,并且已经优化了几个代码,我在todo列表中留下了这个.它是神经网络的激活函数,被调用超过1亿次.根据dotTrace,它占总功能时间的约60%.
你会如何优化这个?
public static float Sigmoid(double value) {
return (float) (1.0 / (1.0 + Math.Pow(Math.E, -value)));
}
Run Code Online (Sandbox Code Playgroud) 我所见过的神经网络的所有例子都是针对一组固定的输入,这些输入适用于图像和固定长度数据.你如何处理可变长度数据,如句子,查询或源代码?有没有办法将可变长度数据编码为固定长度输入,仍然可以获得神经网络的泛化属性?
pattern-recognition artificial-intelligence machine-learning neural-network
我不确定如何在以下情况下解释Keras的默认行为:
我的Y(基本事实)是使用scikit-learn's MultilabelBinarizer()建立的.
因此,为了给出一个随机的例子,我的y列的一行是单热编码的:
[0,0,0,1,0,1,0,0,0,0,1].
所以我有11个可以预测的课程,不止一个可以成真; 因此问题的多标签性质.这个特定样品有三个标签.
我像我一样训练模型用于非多标签问题(照常营业),我没有错误.
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation
from keras.optimizers import SGD
model = Sequential()
model.add(Dense(5000, activation='relu', input_dim=X_train.shape[1]))
model.add(Dropout(0.1))
model.add(Dense(600, activation='relu'))
model.add(Dropout(0.1))
model.add(Dense(y_train.shape[1], activation='softmax'))
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy',
optimizer=sgd,
metrics=['accuracy',])
model.fit(X_train, y_train,epochs=5,batch_size=2000)
score = model.evaluate(X_test, y_test, batch_size=2000)
score
Run Code Online (Sandbox Code Playgroud)
当Keras遇到我y_train并且看到它是"多"单热编码时会做什么,这意味着每一行中存在多个"一" y_train?基本上,Keras会自动执行多标签分类吗?评分指标的解释有何不同?
我想制作一个简单的神经网络,我希望使用ReLU功能.有人能告诉我如何使用numpy实现该功能.谢谢你的时间!
是否有函数调用或其他方法来计算张量流模型中的参数总数?
通过参数我的意思是:可训练变量的N dim向量具有N个参数,NxM矩阵具有N*M参数等.因此,基本上我想在张量流会话中求和所有可训练变量的形状维度的乘积.
我正在使用Adam优化器训练网络进行图像本地化,有人建议我使用指数衰减.我不想尝试,因为Adam优化器本身会降低学习速度.但那家伙坚持认为他说他之前就这么做过.我应该这样做,你的建议背后有什么理论吗?
假设您需要创建一个仅使用预定义的tensorflow构建块无法实现的激活功能,您可以做什么?
所以在Tensorflow中可以创建自己的激活功能.但它很复杂,你必须用C++编写它并重新编译整个tensorflow [1] [2].
有更简单的方法吗?
python neural-network deep-learning tensorflow activation-function
我在github上看到了这个LSTM语言模型的例子(链接).它一般来说对我来说非常清楚.但是我仍然在努力理解调用的内容contiguous(),这在代码中会多次发生.
例如,在代码输入的第74/75行中,创建LSTM的目标序列.数据(存储在其中ids)是二维的,其中第一维是批量大小.
for i in range(0, ids.size(1) - seq_length, seq_length):
# Get batch inputs and targets
inputs = Variable(ids[:, i:i+seq_length])
targets = Variable(ids[:, (i+1):(i+1)+seq_length].contiguous())
Run Code Online (Sandbox Code Playgroud)
举个简单的例子,当使用批量大小为1和seq_length10时inputs,targets看起来像这样:
inputs Variable containing:
0 1 2 3 4 5 6 7 8 9
[torch.LongTensor of size 1x10]
targets Variable containing:
1 2 3 4 5 6 7 8 9 10
[torch.LongTensor of size 1x10]
Run Code Online (Sandbox Code Playgroud)
所以一般来说我的问题是,contiguous()我需要什么以及为什么需要它?
此外,我不明白为什么该方法被调用目标序列而不是输入序列,因为两个变量都包含相同的数据.
怎么可能targets是inputs不连续的,仍然是连续的? …
neural-network ×10
python ×3
tensorflow ×3
c# ×1
contiguous ×1
difference ×1
gpgpu ×1
keras ×1
lstm ×1
numpy ×1
opencl ×1
optimization ×1
performance ×1
pytorch ×1
sdk ×1