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
In[]:=
For[jj=1,jj<=numnodes,jj++,inputarray[jj]=RandomReal[{-2,2}]];Inp=Table[inputarray[jj],{jj,1,numnodes}];
In[]:=
NNfam[Inp]
Out[]=
7