在构造一个简单的感知器神经网络时,我们通常将格式(batch_size,features)输入的2D矩阵传递给二维权矩阵,类似于中的这种简单的神经网络。我总是假设神经网络的感知器/密集/线性层只接受2D格式的输入,并输出另一个2D输出。但最近,我遇到了这样一个模型:线性层接受三维输入张量,并输出另一个三维张量(o1 = self.a1(x))。
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
class Net(nn.Module):
def
我正在尝试了解神经网络架构是如何工作的。我一直在阅读一些文档,但对输入/输出形状感到困惑。
在我的示例中,我尝试执行以下操作。假设我的输入总是(20,15,15)。其中存在深度为20的矩阵,每个输入具有15行×15个cols。基本上,批处理中的每个输入都将是3d输入。我希望有一个深度为6的矩阵输出,每个矩阵有15行x 15个字节。这也是一个3d输出。
上面链接中的问题/答案对于他正在寻找的东西是有意义的,但我似乎无法让它符合我的要求。当然,神经网络可以比下面的更深入,但我现在只是试图掌握其中的逻辑。
from keras.models import Sequential
from keras
我很想在这个问题上有一些见解--我试图在文献中找到解释,但我很困惑。因此,我正在构建一个神经网络(使用Keras)来解决回归问题。我有500,000个样本,每个样本有20,000个特征,我正试图预测一个数值输出。想想看,根据房屋、庭院等的一系列数字数据来预测房价。这些特征是按字母顺序排列的,因此它们的相邻特征是相当没有意义的。
当我第一次尝试创建一个神经网络时,如果我提供了所有的2万种功能,它就会遭受严重的过度拟合--手动将它减少到1,000个功能,极大地提高了性能。
我读过大约1x1卷积神经网络用于特征约简,但它都用于图像和2D输入。
所以我建立了一个三层的基本神经网络:
model = S
我有一个2D输入(如果其中一个考虑样本的数量),我想要应用一个角化层来接受这个输入并输出另一个2D矩阵。因此,例如,如果我有一个带有大小的输入(ExV),学习权重矩阵将是(SxE)和输出(SxV)。我能用密层做这个吗?
编辑 (Nassim请求):
第一层是什么也不做。它只是给Lambda层提供一个输入:
from keras.models import Sequential
from keras.layers.core import Reshape,Lambda
from keras import backend as K
from keras.models import Model
in
我面临的挑战是训练一个神经网络来识别不同类型任务的特定动作和事件,或者在输入时如何称呼它。我看到,大多数输入/输出时,训练神经网络要么是0,或1或[0,1]。但在我的场景中,我希望输入是任意大的整数,输出的形式也是相同的。
让我举一个例子:Input
X = [ 23, 4, 0, 1233423, 1, 0, 0] ->
Y = [ 2, 1, 1]
现在,Xi中的每个元素代表同一个实体的不同属性。比方说,它想描述一个人:
23 -> maps to a place he/she was born
4 -> maps to a school they graduated
我目前正在学习神经网络,我在互联网上看到了关于权重和输入矩阵维度的相互矛盾的解释。我只想知道是否有比其他人更多人使用的惯例。
目前,我定义了输入矩阵X,其维度为:
(男x n)
其中m是样本数,n是特征数。
我用维数来定义我的权重矩阵:
(a X b)
其中a是层中的神经元数目,b是最后一层中的神经元数。
这是常规做法还是我该改变什么?