单特征的样本如何表示为向量,他是如何输入到神经元的?
多特征的样本如何表示为向量,输入到神经元的过程是怎么样的?
多特征时batch不是1的时候,输入到神经元的详细过程是怎么样的?
lstm将序列数据喂入模型,具体是怎么喂的呢?
如果第一层有10个神经元,样本只有batch=5,他是怎么输入的?
- 怎么传入神经元,这个涉及到接口的概念,你可以简单点的认为就是一个函数,这个函数的参数按照固定的格式传入。举例来说,c语言函数:
int func(int arg,char *argc){
...
return0;}
他有两个参数,第一个函数接收一个int类型的数据,第二个参数接收一个char*的字符串,只要你按照你这个格式输入即可,至于下面怎么对这些数据进行处理,是函数的事情,你只要知道输入这两个固定格式的参数,调用方式如下int a=0;
char *s="abc"
int res=fun(a,s);
他会返回一个int类型的数据。
而神经元也是一样,你可以认为他就是一个函数接口,这个接口接受向量(更为准确的说,一般都是神经网络都是用的框架,参数数据类型为张量tensor),只要你将这个张量传入神经元即可。大概就是这个意思,只不过由于接口概念的存在,实际代码情况会更为的复杂,你只要知道调用神经元的时候传入参数就是将数据输入到神经元的过程。 - 至于第二点,单个特征与多特征,就是向量的维度不同。使用你的LSTM来说,输入格式一般为[batch, seq_len, input_size](当然,这个是batch在前的格式,有些是batch在后,这个先不论,你只要知道格式的意思即可)),batch就是一批数据有多少个[seq_len, input_size]同时输入网络,每个batch之间计算是独立的,相当于batch=1的情况,计算了batch次,唯一的不同在于,batch=1的时候loss就是一次,batch不为1的时候,loss是多个batch的loss结果累加(或者其他处理方式,比如均值等等)。seq_len就是时序特征,同一时刻的特征有seq_len个(比如,同一时刻的气温,压强,风速,这个就是3个时序特征,来表达此时的降雨量等);而后面的input_size这里,就是特征的维度是多少维的,比如说风速有方向和风速等级,就是[方向,等级]^T,气温有[温度,湿度]^T,压强有[压强大小,压强方向]^T,等这种用这两个值或者多个值组成一个向量来表达这个时刻的时序特征。而这几个关系和神经元的关系可以看下面的图示,神经元个数就是隐含层节点个数


如何将数据输入神经网络,神经网络的数据处理
https://blog.csdn.net/xilao138/article/details/126646051
参考一下