\definecolor{ublue}{rgb}{0.152,0.250,0.545} \definecolor{ugreen}{rgb}{0,0.5,0} %%% outline %------------------------------------------------------------------------- \begin{tikzpicture} \tikzstyle{word} = [draw=ugreen!20,minimum size=1.8em, fill=ugreen!40, font=\scriptsize, rounded corners=1pt] \tikzstyle{tgt} = [minimum height=1.6em,minimum width=5.2em,fill=black!10!yellow!30,font=\footnotesize,drop shadow={shadow xshift=0.15em,shadow yshift=-0.15em,}] \tikzstyle{p} = [fill=blue!15,minimum width=0.4em,inner sep=0pt] \node[ rounded corners=3pt, fill=red!20, drop shadow, minimum width=10em,minimum height=4em] (encoder) at (0,0) {Transformer 编码器 }; \node[anchor=west, rounded corners=3pt, fill=red!20, drop shadow, minimum width=14em,minimum height=4em] (decoder) at ([xshift=0.8cm]encoder.east) {Transformer 解码器}; \node[anchor=north,word] (en1) at ([yshift=-1.3em,xshift=-3em]encoder.south) {谢}; \node[anchor=north,word] (en2) at ([yshift=-1.3em]encoder.south) {谢}; \node[anchor=north,word] (en3) at ([yshift=-1.3em,xshift=3em]encoder.south) {你}; \node[anchor=north,word] (de1) at ([yshift=-1.3em,xshift=-4em]decoder.south) {1}; \node[anchor=north,word] (de2) at ([yshift=-1.3em]decoder.south) {2}; \node[anchor=north,word] (de3) at ([yshift=-1.3em,xshift=4em]decoder.south) {3}; \node[p,anchor=south, minimum height=0.5em] (w1_1) at ([xshift=-7em,yshift=1.5em]decoder.north){}; \node[p,anchor=south,minimum height=2em] (w1_2) at ([xshift=0.3em]w1_1.south east){}; \node[p,anchor=south,minimum height=0.7em] (w1_3) at ([xshift=0.3em]w1_2.south east){}; \node[p,anchor=south,minimum height=0.6em] (w1_4) at ([xshift=0.3em]w1_3.south east){}; \node[p,anchor=south,minimum height=0.2em] (w1_5) at ([xshift=0.3em]w1_4.south east){}; \node[p,anchor=south,minimum height=0.3em] (w1_6) at ([xshift=0.3em]w1_5.south east){}; \node[p,anchor=south,minimum height=0.6em] (w1_7) at ([xshift=0.3em]w1_6.south east){}; \node[p,anchor=south,minimum height=0.8em] (w1_8) at ([xshift=0.3em]w1_7.south east){}; \node[p,anchor=south, minimum height=0.5em] (w2_1) at ([xshift=-1.8em,yshift=1.5em]decoder.north){}; \node[p,anchor=south,minimum height=2em] (w2_2) at ([xshift=0.3em]w2_1.south east){}; \node[p,anchor=south,minimum height=0.7em] (w2_3) at ([xshift=0.3em]w2_2.south east){}; \node[p,anchor=south,minimum height=0.6em] (w2_4) at ([xshift=0.3em]w2_3.south east){}; \node[p,anchor=south,minimum height=1.9em] (w2_5) at ([xshift=0.3em]w2_4.south east){}; \node[p,anchor=south,minimum height=0.3em] (w2_6) at ([xshift=0.3em]w2_5.south east){}; \node[p,anchor=south,minimum height=0.6em] (w2_7) at ([xshift=0.3em]w2_6.south east){}; \node[p,anchor=south,minimum height=0.8em] (w2_8) at ([xshift=0.3em]w2_7.south east){}; \node[p,anchor=south, minimum height=0.5em] (w3_1) at ([xshift=3.2em,yshift=1.5em]decoder.north){}; \node[p,anchor=south,minimum height=2em] (w3_2) at ([xshift=0.3em]w3_1.south east){}; \node[p,anchor=south,minimum height=0.7em] (w3_3) at ([xshift=0.3em]w3_2.south east){}; \node[p,anchor=south,minimum height=0.6em] (w3_4) at ([xshift=0.3em]w3_3.south east){}; \node[p,anchor=south,minimum height=1.9em] (w3_5) at ([xshift=0.3em]w3_4.south east){}; \node[p,anchor=south,minimum height=0.3em] (w3_6) at ([xshift=0.3em]w3_5.south east){}; \node[p,anchor=south,minimum height=0.6em] (w3_7) at ([xshift=0.3em]w3_6.south east){}; \node[p,anchor=south,minimum height=0.8em] (w3_8) at ([xshift=0.3em]w3_7.south east){}; \node[inner sep=0pt,font=\scriptsize] at ([yshift=0.3em]w1_2.north){Thanks}; \node[inner sep=0pt,font=\scriptsize] at ([yshift=0.3em]w2_2.north){a}; \node[inner sep=0pt,font=\scriptsize] at ([yshift=0.3em]w2_5.north){to}; \node[inner sep=0pt,font=\scriptsize] at ([yshift=0.3em]w3_2.north){lot}; \node[inner sep=0pt,font=\scriptsize] at ([yshift=0.3em]w3_5.north){you}; \draw[-latex, very thick, ublue] ([yshift=0.1em]en1.north) -- ([xshift=-3em,yshift=-0.1em]encoder.south); \draw[-latex, very thick, ublue] ([yshift=0.1em]en2.north) -- ([xshift=0em,yshift=-0.1em]encoder.south); \draw[-latex, very thick, ublue] ([yshift=0.1em]en3.north) -- ([xshift=3em,yshift=-0.1em]encoder.south); \draw[-latex, very thick, ublue] ([yshift=0.1em]de1.north) -- ([xshift=-4em,yshift=-0.1em]decoder.south); \draw[-latex, very thick, ublue] ([yshift=0.1em]de2.north) -- ([xshift=0em,yshift=-0.1em]decoder.south); \draw[-latex, very thick, ublue] ([yshift=0.1em]de3.north) -- ([xshift=4em,yshift=-0.1em]decoder.south); \draw[-latex, very thick, ublue] (encoder.east) -- (decoder.west); \begin{pgfonlayer}{background} { \node[inner sep=2pt] [fit =(w1_1)(w1_2)(w1_8)](box1) {}; \node[inner sep=2pt] [fit =(w2_1)(w2_2)(w2_8)] (box2){}; \node[inner sep=2pt] [fit =(w3_1)(w3_2)(w3_8)] (box3){}; } \end{pgfonlayer} \draw[-latex, very thick, ublue] ([yshift=-1.2em]box1.south) -- (box1.south); \draw[-latex, very thick, ublue] ([yshift=-1.2em]box2.south) -- (box2.south); \draw[-latex, very thick, ublue] ([yshift=-1.2em]box3.south) -- (box3.south); \node[tgt,anchor=west,align=left] (tgt1) at ([xshift=2em]box3.east) {Thanks a lot}; \node[tgt,,anchor=north,align=left](tgt2) at ([yshift=-1em]tgt1.south) {Thanks to you}; \node[tgt,,anchor=north,align=left] (tgt3) at ([yshift=-1em]tgt2.south) {Thanks a you}; \node[tgt,,anchor=north,align=left] (tgt4) at ([yshift=-1em]tgt3.south) {Thanks to lot}; \node[text=ugreen] at ([xshift=1em]tgt1.east){\ding{51}}; \node[text=ugreen] at ([xshift=1em]tgt2.east){\ding{51}}; \node[text=red] at ([xshift=1em]tgt3.east){\ding{55}}; \node[text=red] at ([xshift=1em]tgt4.east){\ding{55}}; \end{tikzpicture}