我在Matlab中有一部分神经网络代码:
p = randint(a);
p1 = p(1:10,:);
p2 = p(11:20,:);
d1 = max([max(p1(:,1)) max(p2(:,1))]);
d2 = max([max(p1(:,2)) max(p2(:,2))]);
d3 = max([max(p1(:,3)) max(p2(:,3))]);
input1 = [p1(:,1)'/d1; p1(:,2)'/d2; p1(:,3)'/d3];
我想知道“d”和“input1”的含义是什么?
答案 0 :(得分:0)
慢慢分手。执行max(p1(:,1))
会在p1
的第一列中找到最大值。执行max(p2(:,1))
会在p2
的第一列中找到最大值。它们都将返回单个值。接下来,如果您使用这两个数字封装max
来电:max([max(p1(:,1) max(p2(:,1)]);
,则会找到这两个数字之间的最大值。
从逻辑上讲,d1
会在p1
和p2
的第一列之间找到最大值。 d2
和d3
执行相同的操作,但涉及p1
和p2
的第二和第三列。
input1
我认为这是一种粗略的方法来定义属于p1
的前三列的输入要素,并确保这些值落在[0,1]
的每个列的范围内单独p1
。为什么他们将p2
考虑在内并不为我所知,因为他们只为p1
执行此操作,但看起来它是某种正常化步骤,正在执行在训练之前预处理输入数据的方法。