\begin{tikzpicture} \tikzstyle{unit}=[draw,rounded corners=2pt,drop shadow,font=\tiny] %left \begin{scope} \foreach \x/\d in {1/2em, 2/8em} \node[unit,fill=yellow!20] at (0,\d) (ln_\x) {层正则化}; \foreach \x/\d in {1/4em} \node[unit,fill=green!20] at (0,\d) (sa_\x) {8头自注意力:512}; \foreach \x/\d in {1/6em, 2/16em} \node[draw,circle,minimum size=1em,inner sep=1pt] at (0,\d) (add_\x) {\scriptsize\bfnew{+}}; \foreach \x/\d in {2/14em} \node[unit,fill=red!20] at (0,\d) (conv_\x) {卷积$1 \times 1$:512}; \foreach \x/\d in {1/10em} \node[unit,fill=red!20] at (0,\d) (conv_\x) {卷积$1 \times 1$:2048}; \foreach \x/\d in {1/12em} \node[unit,fill=blue!20] at (0,\d) (relu_\x) {RELU}; \draw[->,thick] ([yshift=-1.4em]ln_1.-90) -- ([yshift=-0.1em]ln_1.-90); \draw[->,thick] ([yshift=0.1em]ln_1.90) -- ([yshift=-0.1em]sa_1.-90); \draw[->,thick] ([yshift=0.1em]sa_1.90) -- ([yshift=-0.1em]add_1.-90); \draw[->,thick] ([yshift=0.1em]add_1.90) -- ([yshift=-0.1em]ln_2.-90); \draw[->,thick] ([yshift=0.1em]ln_2.90) -- ([yshift=-0.1em]conv_1.-90); \draw[->,thick] ([yshift=0.1em]conv_1.90) -- ([yshift=-0.1em]relu_1.-90); \draw[->,thick] ([yshift=0.1em]relu_1.90) -- ([yshift=-0.1em]conv_2.-90); \draw[->,thick] ([yshift=0.1em]conv_2.90) -- ([yshift=-0.1em]add_2.-90); \draw[->,thick] ([yshift=0.1em]add_2.90) -- ([yshift=1em]add_2.90); \draw[->,thick] ([yshift=-0.8em]ln_1.-90) .. controls ([xshift=5em,yshift=-0.8em]ln_1.-90) and ([xshift=5em]add_1.0) .. (add_1.0); \draw[->,thick] (add_1.0) .. controls ([xshift=5em]add_1.0) and ([xshift=5em]add_2.0) .. (add_2.0); \node[font=\scriptsize] at (0em, -1em){(a) Transformer编码器中若干块的结构}; \end{scope} %right \begin{scope}[xshift=14em] \foreach \x/\d in {1/2em, 2/8em, 3/14em} \node[unit,fill=yellow!20] at (0,\d) (ln_\x) {层正则化}; \foreach \x/\d in {1/6em, 2/12em, 3/22em} \node[draw,circle,minimum size=1em,inner sep=1pt] at (0,\d) (add_\x) {\scriptsize\bfnew{+}}; \node[unit,fill=red!20] at (0,16em) (conv_4) {卷积$1 \times 1$:2048}; \node[unit,fill=red!20] at (0,20em) (conv_5) {卷积$1 \times 1$:512}; \node[unit,fill=blue!20] at (0,18em) (relu_3) {RELU}; \node[unit,fill=cyan!20] at (0,4em) (conv_3) {Sep卷积$9 \times 1$:256}; \node[unit,fill=green!20] at (0,10em) (sa_1) {8头自注意力:512}; \draw[->,thick] ([yshift=-1.4em]ln_1.-90) -- ([yshift=-0.1em]ln_1.-90); \draw[->,thick] ([yshift=0.1em]ln_1.90) -- ([yshift=-0.1em]conv_3.-90); \draw[->,thick] ([yshift=0.1em]conv_3.90) -- ([yshift=-0.1em]add_1.-90); \draw[->,thick] ([yshift=0.1em]add_1.90) -- ([yshift=-0.1em]ln_2.-90); \draw[->,thick] ([,yshift=0.1em]ln_2.90) -- ([yshift=-0.1em]sa_1.-90); \draw[->,thick] ([yshift=0.1em]sa_1.90) -- ([yshift=-0.1em]add_2.-90); \draw[->,thick] ([yshift=0.1em]add_2.90) -- ([yshift=-0.1em]ln_3.-90); \draw[->,thick] ([yshift=0.1em]ln_3.90) -- ([yshift=-0.1em]conv_4.-90); \draw[->,thick] ([yshift=0.1em]conv_4.90) -- ([yshift=-0.1em]relu_3.-90); \draw[->,thick] ([yshift=0.1em]relu_3.90) -- ([yshift=-0.1em]conv_5.-90); \draw[->,thick] ([yshift=0.1em]conv_5.90) -- ([yshift=-0.1em]add_3.-90); \draw[->,thick] ([yshift=0.1em]add_3.90) -- ([yshift=1em]add_3.90); \draw[->,thick] ([yshift=-0.8em]ln_1.-90) .. controls ([xshift=5em,yshift=-0.8em]ln_1.-90) and ([xshift=5em]add_1.0) .. (add_1.0); \draw[->,thick] (add_1.0) .. controls ([xshift=5em]add_1.0) and ([xshift=5em]add_2.0) .. (add_2.0); \draw[->,thick] (add_2.0) .. controls ([xshift=5em]add_2.0) and ([xshift=5em]add_3.0) .. (add_3.0); \node[font=\scriptsize,align=center] at (0em, -1.5em){(b) 使用结构搜索方法优化后的 \\ Transformer编码器中若干块的结构}; \node[minimum size=0.8em,inner sep=0pt,rounded corners=1pt,draw,fill=blue!20] (act) at (5.5em, 20em){}; \node[anchor=west,font=\footnotesize] at ([xshift=0.1em]act.east){激活函数}; \node[anchor=north,minimum size=0.8em,inner sep=0pt,rounded corners=1pt,draw,fill=yellow!20] (nor) at ([yshift=-0.6em]act.south){}; \node[anchor=west,font=\footnotesize] at ([xshift=0.1em]nor.east){层正则化}; \node[anchor=north,minimum size=0.8em,inner sep=0pt,rounded corners=1pt,draw,fill=cyan!20] (wc) at ([yshift=-0.6em]nor.south){}; \node[anchor=west,font=\footnotesize] at ([xshift=0.1em]wc.east){宽卷积}; \node[anchor=north,minimum size=0.8em,inner sep=0pt,rounded corners=1pt,draw,fill=green!20] (at) at ([yshift=-0.6em]wc.south){}; \node[anchor=west,font=\footnotesize] (tag) at ([xshift=0.1em]at.east){注意力机制}; \node[anchor=north,minimum size=0.8em,inner sep=0pt,rounded corners=1pt,draw,fill=red!20] (nsl) at ([yshift=-0.6em]at.south){}; \node[anchor=west,font=\footnotesize] at ([xshift=0.1em]nsl.east){非空间层}; \begin{pgfonlayer}{background} \node[draw,drop shadow,fill=white][fit=(act)(nsl)(tag)]{}; \end{pgfonlayer} \end{scope} \end{tikzpicture}