如何在Keras中实现这种本地连接的体系结构?
我的输入数据如下所示:如何在Keras中实现这种本地连接的体系结构?,keras,Keras,我的输入数据如下所示: > x <- rnorm(10*9, sd = 10) %>% matrix(10) %>% round > colnames(x) <- c(paste0(2014, c("a","b", "c")), paste0(2015, c("a","b", "c")), paste0(2016, c("a","b", "c"))) > x 2014a 2014b 2014c 2015a 2015b 2015c 2016a
> x <- rnorm(10*9, sd = 10) %>% matrix(10) %>% round
> colnames(x) <- c(paste0(2014, c("a","b", "c")), paste0(2015, c("a","b", "c")), paste0(2016, c("a","b", "c")))
> x
2014a 2014b 2014c 2015a 2015b 2015c 2016a 2016b 2016c
[1,] 1 -11 3 3 6 5 17 5 15
[2,] 9 8 0 -1 10 8 -3 -11 6
[3,] -6 22 -3 1 -1 -4 -3 11 -9
[4,] 10 -15 0 -2 4 14 11 -11 3
[5,] 5 4 5 5 15 -9 2 5 1
[6,] -24 16 9 -7 2 -12 1 18 -2
[7,] 1 13 5 -14 1 -10 15 -1 14
[8,] -8 4 4 -15 -1 -20 -6 14 5
[9,] 10 19 -15 15 -4 3 -1 -11 8
[10,] 10 -11 -9 -1 16 3 24 -8 4
>x%矩阵(10)%%>%四舍五入
>colnames(x)x
2014a 2014b 2014c 2015a 2015b 2015c 2016a 2016b 2016c
[1,] 1 -11 3 3 6 5 17 5 15
[2,] 9 8 0 -1 10 8 -3 -11 6
[3,] -6 22 -3 1 -1 -4 -3 11 -9
[4,] 10 -15 0 -2 4 14 11 -11 3
[5,] 5 4 5 5 15 -9 2 5 1
[6,] -24 16 9 -7 2 -12 1 18 -2
[7,] 1 13 5 -14 1 -10 15 -1 14
[8,] -8 4 4 -15 -1 -20 -6 14 5
[9,] 10 19 -15 15 -4 3 -1 -11 8
[10,] 10 -11 -9 -1 16 3 24 -8 4
我的结果变量是连续的(即:这是一个回归问题)
我想让一个模型具有如下的体系结构:
> x <- rnorm(10*9, sd = 10) %>% matrix(10) %>% round
> colnames(x) <- c(paste0(2014, c("a","b", "c")), paste0(2015, c("a","b", "c")), paste0(2016, c("a","b", "c")))
> x
2014a 2014b 2014c 2015a 2015b 2015c 2016a 2016b 2016c
[1,] 1 -11 3 3 6 5 17 5 15
[2,] 9 8 0 -1 10 8 -3 -11 6
[3,] -6 22 -3 1 -1 -4 -3 11 -9
[4,] 10 -15 0 -2 4 14 11 -11 3
[5,] 5 4 5 5 15 -9 2 5 1
[6,] -24 16 9 -7 2 -12 1 18 -2
[7,] 1 13 5 -14 1 -10 15 -1 14
[8,] -8 4 4 -15 -1 -20 -6 14 5
[9,] 10 19 -15 15 -4 3 -1 -11 8
[10,] 10 -11 -9 -1 16 3 24 -8 4
基本上,我从不同年份获得了颗粒数据,这些数据聚集起来形成了一系列年度现象,这些现象本身可能会相互影响。如果我有足够的数据,我就可以安装一组完全连接的层。但是,如果我的样本量不大,这将是低效的
这不完全是一个conv网络,因为我不希望“瓷砖”重叠
我还想申请退学和全球L2处罚
我不熟悉Keras,但不熟悉神经网络。如何实现这一点,以及在Keras术语中如何引用它?您可以使用具有多个输入并创建该计算图。大致如下:
inputs=[输入(形状=(3,))用于范围(3)]
latents=列表()
对于范围(3)中的i:
潜在=密集(3,激活='relu')(输入[i])
潜伏=密集(3,激活='relu')(潜伏)
附加(潜在的)
合并=合并(最新)
输出=密集(4,激活='relu')(合并)
out=密集(4,激活='relu')(out)
out=密集(1)(out)
架构图假设您有固定的年份输入,在本例中为3年。如果年数可变,则必须使用共享密集层,并在合并前每年使用wrapper将密集层应用于:
in=input(shape=(3,3))#这一次我们有3年的2d数组
潜伏期=时间分布(密集型(3,activation='relu'))(in)#每年应用相同的密集型
潜伏期=时间分布(密集(3,激活='relu'))(潜伏期)
合并=展平()(潜在)
out=。。。
这一次,密集层是跨年份共享的,它们的权重基本相同。您使用的是R吗?如果您对KRAS(和R)是新手,考虑一下Python,还有更多的问题、答案和教程可用。用Python实现这一点很容易,但我不知道R是如何工作的。我是一个R用户,但我能理解足够多的Python,能够用这种语言找到一个例子。AFAIK R for Keras可以实现所有Keras。对,固定的年限。看起来相关术语是
最新者
,然后有一个串联
函数。非常有用,谢谢。潜在的只是中间隐藏的特性,在这种情况下它只是一个变量名。哦,对了,很明显。因此,当将concatenate
函数应用于一堆“潜在者”时,将创建一个架构,使“子网”保持分离。是的,我还更新了一个模型,该模型每年共享密集层。