在我原来的环境中
X1 = (1200,40,1)
y1 = (1200,10)
Run Code Online (Sandbox Code Playgroud)
然后,我可以完美地使用我的代码:
model = Sequential()
model.add(LSTM(12, input_shape=(40, 1), return_sequences=True))
model.add(LSTM(12, return_sequences=True))
model.add(LSTM(6, return_sequences=False))
model.add((Dense(10)))
Run Code Online (Sandbox Code Playgroud)
现在,我进一步获得了另一个与X1和相同大小的时间序列数据y1。即
X2 = (1200,40,1)
y2 = (1200,10)
Run Code Online (Sandbox Code Playgroud)
现在,我叠X1,X2并且y1,y2作为3D阵列:
X_stack = (1200,40,2)
y_stack = (1200,10,2)
Run Code Online (Sandbox Code Playgroud)
然后,我尝试修改我的keras代码,例如:
model = Sequential()
model.add(LSTM(12, input_shape=(40, 2), return_sequences=True))
model.add(LSTM(12, return_sequences=True))
model.add(LSTM(6, return_sequences=False))
model.add((Dense((10,2))))
Run Code Online (Sandbox Code Playgroud)
我希望我的代码直接与3D数组一起使用X_stack,y_stack而不希望将其重塑为2D数组。您能帮我修改设置吗?谢谢。
我有一个b包含30个条目的向量.
我想避免使用for循环来构造这样的矩阵:
其中b_i是i向量的第n个条目b.
例如,定义向量
b = [2 6 -7 3 1 -4 -1 1 11 8 -4 9 2 0 2 -1 0 4 4 4 2 -4 2 5 1 3 2 -1 1 -2]
Run Code Online (Sandbox Code Playgroud)
我尝试使用for循环的地方是:
A = zeros(5,5);
for i = 1:5
A(i) = b(i+5);
A(i+5) = b(i+6);
A(i+10) = b(i+7);
A(i+15) = b(i+8);
A(i+20) = b(i+9);
end
Run Code Online (Sandbox Code Playgroud)
结果是
有没有更快更通用的方法来生成这个矩阵?
背景:
(1)这是我从大约700Mb的巨大ascii文件中提取的内容:
0, 0, 0, 0, 0, 0, 0, 0, 3.043678e-05, 3.661498e-05, 2.070347e-05,
2.47175e-05, 1.49877e-05, 3.031176e-05, 2.12128e-05, 2.817522e-05,
1.802658e-05, 7.192285e-06, 8.467806e-06, 2.047874e-05, 9.621194e-05,
4.467542e-05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.000421869,
5.0003081213, 0.0001938675, 8.70334e-05, 0.0002973858, 0.0003385935,
8.763598e-05, 2.743326e-05, 0, 0.0001043894, 3.409237e-05, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
Run Code Online (Sandbox Code Playgroud)
(2)我想做两个任务:
(2.1)找到以冒号和分号分隔的数字中的最大值.
它是5.0003081213 …
我有一个m随机范围从1到12 的向量.
3 12 12 7 10 3 6 12 10 12
Run Code Online (Sandbox Code Playgroud)
我有一个转换表
1 2 3 4 5 6 7 8 9 10 11 12
0.6 0.7 1.8 0.9 0.5 1.6 0.9 1.5 1.8 0.8 0.9 0.5
这意味着,如果m(1)==3,我想改变m(1)为1.8.如果m(2)==12,我想改变m(2)为0.5.
我可以知道这种转换最快捷的方式是什么?谢谢.