LaTeX tikz 画神经网络结构图

画图代码如下:

%!TEX TS-program = xeLaTeX
%!TEX encoding = UTF-8 Unicode

documentclass[10pt,tikz,border=1]{standalone}
PassOptionsToPackage{noopticals, mathlf, roundv}{MinionPro}
usetikzlibrary{arrows.meta}
usetikzlibrary{calc,positioning}
usetikzlibrary{
arrows, 
decorations.pathmorphing, 
backgrounds, 
fit, 
positioning, 
petri}

egin{document}
	egin{tikzpicture}[%
	>={Latex[width=2mm,length=2mm]},	
base/.style = { 
	minimum width=1cm, 
	minimum height=0.5cm,
	text centered, 
	font=sffamily},		
neuron1/.style={
	circle,
	draw,
	inner sep=0pt,
	minimum size=8mm},
activityStarts/.style = {
	base, 
	fill=blue!30},	
zol/.style = {
	rectangle, 
	rounded corners, 
	draw=black,
	minimum width=4cm, 
	minimum height=1cm,
	text centered, 
	font=sffamily}
]
  
foreach y in {3,...,1}
    
ode (ly) [neuron1] at (-2.5, 1.5+y * 1) {$a_{y}$};   
      
foreach y in {6,...,1}
	
ode (my) [neuron1] at (0, y * 1) {$b_{y}$};

foreach y in {6,...,1}
    
ode (ny) [neuron1] at (2.5, y * 1) {$c_{y}$};

foreach y in {5,...,1}
    
ode (ry) [neuron1] at (5, 1+y * 1) {$d_{y}$};   

foreach y in {4,...,1}
    
ode (py) [neuron1] at (7.5, 1+y * 1) {$e_{y}$};  
              
foreach y in {4,...,1}
    
ode (qy) [neuron1] at (9.5, 1+y * 1) {$f_{y}$};              
          
    
ode (a0) [zol,activityStarts,right=of q4,xshift=0.5cm, yshift=0.5cm] {$z = x+y
$};
    
ode (a1) [zol,activityStarts,right=of q4,xshift=0.5cm,yshift=-0.5cm] {$z = x+y$};
    
ode (a2) [zol,activityStarts,right=of q4,xshift=0.5cm,yshift=-1.5cm] {$z = x+y$};
    
ode (a3) [zol,activityStarts,right=of q4,xshift=0.5cm,yshift=-2.5cm] {$z = x+y$};     
    
ode (a4) [zol,activityStarts,right=of q4,xshift=0.5cm,yshift=-3.5cm] {$z = x+y$};     
       
    foreach x in {3,...,1}
    foreach y in {6,...,1}
        draw[-] (lx) to (my);


    foreach x in {6,...,1}
    foreach y in {6,...,1}
        draw[-] (mx) to (ny);
        
    foreach x in {6,...,1}
    foreach y in {5,...,1}
        draw[-] (nx) to (ry);
        
	egin{scope}[on background layer]
		
ode (back1) [fill = black!10, rounded corners, fit =(m1)(m2)(m3)(m4)(m5)(m6)(n1)(n2)(n3)(n4)(n5)(n6)] {};
	end{scope}    
    
     foreach x in {5,...,1}
     foreach y in {4,...,1}
        draw[-] (rx) to (py);
        
     foreach x in {4,...,1}
     foreach y in {4,...,1}
        draw[-] (px) to (qy);   
             
     foreach x in {4,...,1}
     foreach y in {1.5, 2.5, 3.5, 4.5, 5.5}
        draw (qx) -- (11.4,y);           

	end{tikzpicture} 
end{document}

编译结果如下:

经验分享 程序员 微信小程序 职场和发展