numnodes=16;numfamilies=8;​​For[j=1,j<=numfamilies,j++,family[j]={}];​​For[i=1,i<=numnodes,i++,​​j=Floor[(i-1)/2]+1;​​family[j]=Append[family[j],i]​​];​​famlist=Table[i,{i,numfamilies+1}];​​decfam=NetDecoder[{"Class",famlist}];​​For[k=1;listfam={},k<=numfamilies+1,k++,​​For[i=1,i<=2,i++,​​For[j=1,j<=i,j++,​​If[k==numfamilies+1,listfam=Append[listfam,{k,family[numfamilies][[i]],family[numfamilies][[j]]}->0.1],listfam=Append[listfam,{k,family[k][[i]],family[k][[j]]}->1]]​​]​​]​​];​​faminit=SparseArray[listfam];​​quadfam=FunctionLayer[Function[Dot[NetArray["Array"Normal[faminit]],#,#]],"Input"->numnodes];​​NNfam=NetChain[{quadfam,SoftmaxLayer[]},"Output"->decfam];​​
​
Out[]=
NetChain
Inputport:
vector(size: 16)
Outputport:
class

In[]:=
For[jj=1,jj<=numnodes,jj++,​​inputarray[jj]=RandomReal[{-2,2}]​​];​​Inp=Table[inputarray[jj],{jj,1,numnodes}];
In[]:=
NNfam[Inp]
Out[]=
7