{ "
This is a U-Net based model to predict noise _^_0_^_.
\nU-Net is a gets it's name from the U shape in the model diagram. It processes a given image by progressively lowering (halving) the feature map resolution and then increasing the resolution. There are pass-through connection at each resolution.
\n_^_1_^_
\nThis implementation contains a bunch of modifications to original U-Net (residual blocks, multi-head attention) and also adds time-step embeddings _^_2_^_.
\n": "\u0dc1\u0db6\u0dca\u0daf\u0dba\u0db4\u0dd4\u0dbb\u0ddd\u0d9a\u0dae\u0db1\u0dba \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dc3\u0db3\u0dc4\u0dcf \u0db8\u0dd9\u0dba \u0dba\u0dd6-\u0db1\u0dd9\u0da7\u0dca \u0db4\u0daf\u0db1\u0db8\u0dca \u0d9a\u0dbb\u0d9c\u0dad\u0dca \u0d86\u0d9a\u0dd8\u0dad\u0dd2\u0dba\u0d9a\u0dd2 _^_0_^_.
\n\u0dba\u0dd6-\u0db1\u0dd9\u0da7\u0dca\u0dba\u0db1\u0dd4 \u0d86\u0daf\u0dbb\u0dca\u0dc1 \u0dbb\u0dd6\u0db4 \u0dc3\u0da7\u0dc4\u0db1\u0dda \u0dba\u0dd6 \u0dc4\u0dd0\u0da9\u0dba\u0dd9\u0db1\u0dca \u0d91\u0dba \u0db1\u0db8 \u0dbd\u0db6\u0dcf \u0d9c\u0db1\u0dd3. \u0dc0\u0dd2\u0dc1\u0dda\u0dc2\u0dcf\u0d82\u0d9c \u0dc3\u0dd2\u0dad\u0dd2\u0dba\u0db8\u0dca \u0dc0\u0dd2\u0db7\u0dda\u0daf\u0db1\u0dba \u0d9a\u0dca\u0dbb\u0db8\u0dba\u0dd9\u0db1\u0dca \u0d85\u0da9\u0dd4 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dd9\u0db1\u0dca (\u0d85\u0da9\u0d9a\u0dca) \u0dc3\u0dc4 \u0dc0\u0dd2\u0db7\u0dda\u0daf\u0db1\u0dba \u0dc0\u0dd0\u0da9\u0dd2 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dd9\u0db1\u0dca \u0d91\u0dba \u0dbd\u0db6\u0dcf \u0daf\u0dd3 \u0d87\u0dad\u0dd2 \u0dbb\u0dd6\u0db4\u0dba\u0d9a\u0dca \u0dc3\u0d9a\u0dc3\u0db1\u0dd4 \u0dbd\u0dd0\u0db6\u0dda. \u0dc3\u0dd1\u0db8 \u0dc0\u0dd2\u0db7\u0dda\u0daf\u0db1\u0dba\u0d9a\u0daf\u0dd3\u0db8 \u0db4\u0dcf\u0dc3\u0dca-\u0dc4\u0dbb\u0dc4\u0dcf \u0dc3\u0db8\u0dca\u0db6\u0db1\u0dca\u0db0\u0dad\u0dcf\u0dc0\u0dba\u0d9a\u0dca \u0d87\u0dad.
\n_^_1_^_
\n\u0db8\u0dd9\u0db8\u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dad\u0dca\u0db8\u0d9a \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0db8\u0dd4\u0dbd\u0dca \u0dba\u0dd6-\u0db1\u0dd9\u0da7\u0dca (\u0d85\u0dc0\u0dc1\u0dda\u0dc2 \u0d9a\u0dd4\u0da7\u0dca\u0da7\u0dd2, \u0db6\u0dc4\u0dd4-\u0dc4\u0dd2\u0dc3 \u0d85\u0dc0\u0db0\u0dcf\u0db1\u0dba) \u0dc3\u0db3\u0dc4\u0dcf \u0dc0\u0dd9\u0db1\u0dc3\u0dca \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dca \u0dbb\u0dcf\u0dc1\u0dd2\u0dba\u0d9a\u0dca \u0d85\u0da9\u0d82\u0d9c\u0dd4 \u0dc0\u0db1 \u0d85\u0dad\u0dbb \u0d9a\u0dcf\u0dbd-\u0db4\u0dd2\u0dba\u0dc0\u0dbb \u0d9a\u0dcf\u0dc0\u0dd0\u0daf\u0dca\u0daf\u0dd3\u0db8\u0dca \u0d91\u0d9a\u0dad\u0dd4 \u0d9a\u0dbb\u0dba\u0dd2 _^_2_^_.
\n", "This is similar to transformer multi-head attention.
\n": "\u0db8\u0dd9\u0dba \u0da7\u0dca\u0dbb\u0dcf\u0db1\u0dca\u0dc3\u0dca\u0dc6\u0ddd\u0db8\u0dbb\u0dca \u0db6\u0dc4\u0dd4-\u0dc4\u0dd2\u0dc3 \u0d85\u0dc0\u0db0\u0dcf\u0db1\u0dba\u0da7\u0dc3\u0db8\u0dcf\u0db1 \u0dc0\u0dda.
\n", "This combines _^_0_^_ and _^_1_^_. These are used in the first half of U-Net at each resolution.
\n": "\u0db8\u0dd9\u0dba\u0d92\u0d9a\u0dcf\u0db6\u0daf\u0dca\u0db0 _^_0_^_ \u0dc4\u0dcf _^_1_^_. \u0db8\u0dd9\u0db8 \u0d91\u0d9a\u0dca \u0d91\u0d9a\u0dca \u0dba\u0ddd\u0da2\u0db1\u0dcf\u0dc0 \u0daf\u0dd3 U-Net \u0db4\u0dc5\u0db8\u0dd4 \u0db7\u0dcf\u0d9c\u0dba\u0dda \u0daf\u0dd3 \u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf \u0dc0\u0dda.
\n", "It combines a _^_0_^_, _^_1_^_, followed by another _^_2_^_. This block is applied at the lowest resolution of the U-Net.
\n": "\u0d91\u0dba\u0dad\u0dc0\u0dad\u0dca \u0d91\u0d9a\u0d9a\u0dca _^_0_^_\u0dc3\u0db8\u0d9f \u0d92\u0d9a\u0dcf\u0db6\u0daf\u0dca\u0db0 _^_2_^_\u0dc0\u0dda. _^_1_^_ \u0db8\u0dd9\u0db8 \u0d9a\u0ddc\u0da7\u0dc3 U-Net \u0dc4\u0dd2 \u0d85\u0da9\u0dd4\u0db8 \u0dc0\u0dd2\u0db7\u0dda\u0daf\u0db1\u0dba\u0dd9\u0db1\u0dca \u0dba\u0ddc\u0daf\u0db1\u0dd4 \u0dbd\u0dd0\u0db6\u0dda.
\n", "A residual block has two convolution layers with group normalization. Each resolution is processed with two residual blocks.
\n": "\u0d85\u0dc0\u0dc1\u0dda\u0dc2\u0d9a\u0ddc\u0da7\u0dc3\u0d9a\u0daf\u0dd3 \u0d9a\u0dab\u0dca\u0da9\u0dcf\u0dba\u0db8\u0dca \u0dc3\u0dcf\u0db8\u0dcf\u0db1\u0dca\u0dba\u0d9a\u0dbb\u0dab\u0dba \u0dc3\u0db8\u0d9c convolution \u0dc3\u0dca\u0dae\u0dbb \u0daf\u0dd9\u0d9a\u0d9a\u0dca \u0d87\u0dad. \u0dc3\u0dd1\u0db8 \u0dc0\u0dd2\u0db7\u0dda\u0daf\u0db1\u0dba\u0d9a\u0dca\u0db8 \u0d85\u0dc0\u0dc1\u0dda\u0dc2 \u0d9a\u0ddc\u0da7\u0dc3\u0dca \u0daf\u0dd9\u0d9a\u0d9a\u0dd2\u0db1\u0dca \u0dc3\u0d9a\u0dc3\u0db1\u0dd4 \u0dbd\u0dd0\u0db6\u0dda.
\n", "_^_0_^_
\n": "_^_0_^_
\n", "This combines _^_0_^_ and _^_1_^_. These are used in the second half of U-Net at each resolution.
\n": "\u0db8\u0dd9\u0dba\u0d92\u0d9a\u0dcf\u0db6\u0daf\u0dca\u0db0 _^_0_^_ \u0dc4\u0dcf _^_1_^_. \u0dc3\u0dd1\u0db8 \u0dc0\u0dd2\u0db7\u0dda\u0daf\u0db1\u0dba\u0d9a\u0daf\u0dd3\u0db8 \u0dba\u0dd6-\u0db1\u0dd9\u0da7\u0dca \u0dc4\u0dd2 \u0daf\u0dd9\u0dc0\u0db1 \u0db7\u0dcf\u0d9c\u0dba\u0dda\u0daf\u0dd3 \u0db8\u0dda\u0dc0\u0dcf \u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf \u0dc0\u0dda.
\n", "\n": "
\n", "
_^_0_^_ at the same resolution
\n": "_^_0_^_ \u0d91\u0d9a\u0db8 \u0dc0\u0dd2\u0db7\u0dda\u0daf\u0db1\u0dba\u0dda
\n", "_^_0_^_ is not used, but it's kept in the arguments because for the attention layer function signature to match with _^_1_^_.
\n": "_^_0_^_ \u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf \u0db1\u0ddc\u0d9a\u0dd9\u0dbb\u0dda, \u0db1\u0db8\u0dd4\u0dad\u0dca \u0d91\u0dba \u0dad\u0dbb\u0dca\u0d9a\u0dc0\u0dbd \u0dad\u0db6\u0dcf \u0d87\u0dad\u0dca\u0dad\u0dda \u0d85\u0dc0\u0db0\u0dcf\u0db1\u0dba \u0dba\u0ddc\u0db8\u0dd4 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dda \u0dc3\u0dca\u0dae\u0dbb \u0dc1\u0dca\u0dbb\u0dd2\u0dad\u0dba\u0dda \u0d85\u0dad\u0dca\u0dc3\u0db1 \u0dc3\u0db8\u0d9f \u0d9c\u0dd0\u0dbd\u0db4\u0dd9\u0db1 \u0db6\u0dd0\u0dc0\u0dd2\u0db1\u0dd2 _^_1_^_.
\n", "_^_0_^_ will store outputs at each resolution for skip connection
\n": "_^_0_^_ \u0db8\u0d9f \u0dc4\u0dd0\u0dbb\u0dd3\u0db8\u0dda \u0dc3\u0db8\u0dca\u0db6\u0db1\u0dca\u0db0\u0dad\u0dcf\u0dc0\u0dba \u0dc3\u0db3\u0dc4\u0dcf \u0d91\u0d9a\u0dca \u0d91\u0d9a\u0dca \u0dc0\u0dd2\u0db7\u0dda\u0daf\u0db1\u0dba\u0dda \u0db4\u0dca\u0dbb\u0dad\u0dd2\u0daf\u0dcf\u0db1\u0dba\u0db1\u0dca \u0d9c\u0db6\u0da9\u0dcf \u0d9a\u0dbb\u0db1\u0dd4 \u0d87\u0dad
\n", "Activation
\n": "\u0dc3\u0d9a\u0dca\u200d\u0dbb\u0dd3\u0dba\u0d9a\u0dd2\u0dbb\u0dd3\u0db8
\n", "Add _^_0_^_
\n": "\u0d91\u0d9a\u0dad\u0dd4\u0d9a\u0dbb\u0db1\u0dca\u0db1 _^_0_^_
\n", "Add skip connection
\n": "\u0db8\u0d9f\u0dc4\u0dd0\u0dbb\u0dd3\u0db8\u0dda \u0dc3\u0db8\u0dca\u0db6\u0db1\u0dca\u0db0\u0dad\u0dcf\u0dc0\u0dba \u0d91\u0d9a\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1
\n", "Add the shortcut connection and return
\n": "\u0d9a\u0dd9\u0da7\u0dd2\u0db8\u0d82\u0dc3\u0db8\u0dca\u0db6\u0db1\u0dca\u0db0\u0dad\u0dcf\u0dc0\u0dba \u0d91\u0d9a\u0dad\u0dd4 \u0d9a\u0dbb \u0d86\u0db4\u0dc3\u0dd4 \u0dba\u0db1\u0dca\u0db1
\n", "Add time embeddings
\n": "\u0d9a\u0dcf\u0dbd\u0d9a\u0dcf\u0dc0\u0dd0\u0daf\u0dca\u0daf\u0dd3\u0db8\u0dca \u0d91\u0d9a\u0dad\u0dd4 \u0d9a\u0dbb\u0db1\u0dca\u0db1
\n", "Calculate scaled dot-product _^_0_^_
\n": "\u0db4\u0dbb\u0dd2\u0db8\u0dcf\u0dab\u0dad\u0dd2\u0dad\u0dca \u0db1\u0dd2\u0dc2\u0dca\u0db4\u0dcf\u0daf\u0db1\u0dba\u0d9a\u0dca \u0d9c\u0dab\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1 _^_0_^_
\n", "Change _^_0_^_ to shape _^_1_^_
\n": "_^_0_^_ \u0dc4\u0dd0\u0da9\u0dba\u0da7 \u0dc0\u0dd9\u0db1\u0dc3\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1 _^_1_^_
\n", "Change to shape _^_0_^_
\n": "\u0dc4\u0dd0\u0da9\u0dba\u0da7\u0dc0\u0dd9\u0db1\u0dc3\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1 _^_0_^_
\n", "Combine the set of modules
\n": "\u0db8\u0ddc\u0da9\u0dd2\u0dba\u0dd4\u0dbd\u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba \u0d92\u0d9a\u0dcf\u0db6\u0daf\u0dca\u0db0 \u0d9a\u0dbb\u0db1\u0dca\u0db1
\n", "Create sinusoidal position embeddings same as those from the transformer
\n_^_0_^_where _^_1_^_ is _^_2_^_
\n": "\u0da7\u0dca\u0dbb\u0dcf\u0db1\u0dca\u0dc3\u0dca\u0dc6\u0ddd\u0db8\u0dbb\u0dba\u0da7 \u0dc3\u0db8\u0dcf\u0db1\u0dc3\u0dba\u0dd2\u0db1\u0ddc\u0dc3\u0ddc\u0dba\u0dd2\u0da9\u0dbd\u0dca \u0dc3\u0dca\u0dae\u0dcf\u0db1 \u0d9a\u0dcf\u0dc0\u0dd0\u0daf\u0dca\u0daf\u0dd3\u0db8\u0dca \u0dc3\u0dcf\u0daf\u0db1\u0dca\u0db1
\n_^_0_^__^_1_^_ \u0d9a\u0ddc\u0dc4\u0dda\u0daf _^_2_^_
\n", "Default _^_0_^_
\n": "\u0db4\u0dd9\u0dbb\u0db1\u0dd2\u0db8\u0dd2 _^_0_^_
\n", "Down sample at all resolutions except the last
\n": "\u0db4\u0dc3\u0dd4\u0d9c\u0dd2\u0dba\u0dc4\u0dd0\u0dbb \u0d85\u0db1\u0dd9\u0d9a\u0dd4\u0dad\u0dca \u0dc3\u0dd2\u0dba\u0dbd\u0dd4 \u0dba\u0ddd\u0da2\u0db1\u0dcf \u0daf\u0dd3 \u0d86\u0daf\u0dbb\u0dca\u0dc1 \u0db4\u0dc4\u0dc5
\n", "Final block to reduce the number of channels
\n": "\u0db1\u0dcf\u0dbd\u0dd2\u0d9a\u0dcf\u0d9c\u0dab\u0db1 \u0d85\u0da9\u0dd4 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dc3\u0db3\u0dc4\u0dcf \u0d85\u0dc0\u0dc3\u0dcf\u0db1 \u0d9a\u0ddc\u0da7\u0dc3
\n", "Final normalization and convolution
\n": "\u0d85\u0dc0\u0dc3\u0dcf\u0db1\u0dc3\u0dcf\u0db8\u0dcf\u0db1\u0dca\u0dba\u0d9a\u0dbb\u0dab\u0dba \u0dc3\u0dc4 \u0d9a\u0dd0\u0da7\u0dd2 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8
\n", "Final normalization and convolution layer
\n": "\u0d85\u0dc0\u0dc3\u0dcf\u0db1\u0dc3\u0dcf\u0db8\u0dcf\u0db1\u0dca\u0dba\u0d9a\u0dbb\u0dab\u0dba \u0dc3\u0dc4 \u0d9a\u0dd0\u0da7\u0dd2 \u0d9c\u0dd0\u0dc3\u0dd4\u0dab\u0dd4 \u0dc3\u0dca\u0dae\u0dbb\u0dba
\n", "First convolution layer
\n": "\u0db4\u0dc5\u0db8\u0dd4\u0d9a\u0dd0\u0da7\u0dd2 \u0d9c\u0dd0\u0dc3\u0dd4\u0dab\u0dd4 \u0dc3\u0dca\u0dae\u0dbb\u0dba
\n", "First half of U-Net
\n": "\u0dba\u0dd6-\u0db1\u0dd9\u0da7\u0dca\u0dc4\u0dd2 \u0db4\u0dc5\u0db8\u0dd4 \u0db7\u0dcf\u0d9c\u0dba
\n", "First linear layer
\n": "\u0db4\u0dc5\u0db8\u0dd4\u0dbb\u0dda\u0d9b\u0dd3\u0dba \u0dc3\u0dca\u0dae\u0dbb\u0dba
\n", "For each resolution
\n": "\u0d91\u0d9a\u0dca\u0d91\u0d9a\u0dca \u0dba\u0ddd\u0da2\u0db1\u0dcf\u0dc0 \u0dc3\u0db3\u0dc4\u0dcf
\n", "Get image projection
\n": "\u0dbb\u0dd6\u0db4\u0db4\u0dca\u0dbb\u0d9a\u0dca\u0dc2\u0dda\u0db4\u0dab\u0dba \u0dbd\u0db6\u0dcf \u0d9c\u0db1\u0dca\u0db1
\n", "Get query, key, and values (concatenated) and shape it to _^_0_^_
\n": "\u0dc0\u0dd2\u0db8\u0dc3\u0dd4\u0db8\u0dbd\u0db6\u0dcf \u0d9c\u0db1\u0dca\u0db1, \u0dba\u0dad\u0dd4\u0dbb, \u0dc3\u0dc4 \u0d85\u0d9c\u0dba\u0db1\u0dca (concatenated) \u0dc3\u0dc4 \u0d91\u0dba \u0dc4\u0dd0\u0da9\u0d9c\u0dc3\u0dca\u0dc0\u0dcf _^_0_^_
\n", "Get shape
\n": "\u0dc4\u0dd0\u0da9\u0dba\u0dbd\u0db6\u0dcf \u0d9c\u0db1\u0dca\u0db1
\n", "Get the skip connection from first half of U-Net and concatenate
\n": "\u0dba\u0dd6-\u0db1\u0dd9\u0da7\u0dca\u0dc4\u0dd2 \u0db4\u0dc5\u0db8\u0dd4 \u0db7\u0dcf\u0d9c\u0dba\u0dda \u0dc3\u0dd2\u0da7 \u0db8\u0d9f \u0dc4\u0dd0\u0dbb\u0dd3\u0db8\u0dda \u0dc3\u0db8\u0dca\u0db6\u0db1\u0dca\u0db0\u0dad\u0dcf\u0dc0\u0dba \u0dbd\u0db6\u0dcf\u0d9c\u0dd9\u0db1 \u0dc3\u0d82\u0dba\u0dd4\u0d9a\u0dca\u0dad \u0d9a\u0dbb\u0db1\u0dca\u0db1
\n", "Get time-step embeddings
\n": "\u0d9a\u0dcf\u0dbd-\u0db4\u0dd2\u0dba\u0dc0\u0dbb\u0d9a\u0dcf\u0dc0\u0dd0\u0daf\u0dca\u0daf\u0dd3\u0db8\u0dca \u0dbd\u0db6\u0dcf \u0d9c\u0db1\u0dca\u0db1
\n", "Group normalization and the first convolution layer
\n": "\u0d9a\u0dab\u0dca\u0da9\u0dcf\u0dba\u0db8\u0dca\u0dc3\u0dcf\u0db8\u0dcf\u0db1\u0dca\u0dba\u0d9a\u0dbb\u0dab\u0dba \u0dc3\u0dc4 \u0db4\u0dc5\u0db8\u0dd4 \u0d9a\u0dd0\u0da7\u0dd2 \u0d9c\u0dd0\u0dc3\u0dd4\u0dab\u0dd4 \u0dc3\u0dca\u0dae\u0dbb\u0dba
\n", "Group normalization and the second convolution layer
\n": "\u0d9a\u0dab\u0dca\u0da9\u0dcf\u0dba\u0db8\u0dca\u0dc3\u0dcf\u0db8\u0dcf\u0db1\u0dca\u0dba\u0d9a\u0dbb\u0dab\u0dba \u0dc3\u0dc4 \u0daf\u0dd9\u0dc0\u0db1 \u0d9a\u0dd0\u0da7\u0dd2 \u0d9c\u0dd0\u0dc3\u0dd4\u0dab\u0dd4 \u0dc3\u0dca\u0dad\u0dbb\u0dba
\n", "If the number of input channels is not equal to the number of output channels we have to project the shortcut connection
\n": "\u0d86\u0daf\u0dcf\u0db1\u0db1\u0dcf\u0dbd\u0dd2\u0d9a\u0dcf \u0d9c\u0dab\u0db1 \u0db4\u0dca\u0dbb\u0dad\u0dd2\u0daf\u0dcf\u0db1 \u0db1\u0dcf\u0dbd\u0dd2\u0d9a\u0dcf \u0d9c\u0dab\u0db1\u0da7 \u0dc3\u0db8\u0dcf\u0db1 \u0db1\u0ddc\u0dc0\u0dda \u0db1\u0db8\u0dca \u0d9a\u0dd9\u0da7\u0dd2\u0db8\u0d82 \u0dc3\u0db8\u0dca\u0db6\u0db1\u0dca\u0db0\u0dad\u0dcf\u0dc0\u0dba \u0db4\u0dca\u0dbb\u0d9a\u0dca\u0dc2\u0dda\u0db4\u0dab\u0dba \u0d9a\u0dc5 \u0dba\u0dd4\u0dad\u0dd4\u0dba
\n", "Linear layer for final transformation
\n": "\u0d85\u0dc0\u0dc3\u0dcf\u0db1\u0db4\u0dbb\u0dd2\u0dc0\u0dbb\u0dca\u0dad\u0db1\u0dba \u0dc3\u0db3\u0dc4\u0dcf \u0dbb\u0dda\u0d9b\u0dd3\u0dba \u0dc3\u0dca\u0dae\u0dbb\u0dba
\n", "Linear layer for time embeddings
\n": "\u0d9a\u0dcf\u0dbd\u0d9a\u0dcf\u0dc0\u0dd0\u0daf\u0dca\u0daf\u0dd3\u0db8\u0dca \u0dc3\u0db3\u0dc4\u0dcf \u0dbb\u0dda\u0d9b\u0dd3\u0dba \u0dc3\u0dca\u0dae\u0dbb\u0dba
\n", "Middle (bottom)
\n": "\u0db8\u0dd0\u0daf(\u0db4\u0dc4\u0dc5)
\n", "Middle block
\n": "\u0db8\u0dd0\u0daf\u0d9a\u0ddc\u0da7\u0dc3
\n", "Multiply by values
\n": "\u0d85\u0d9c\u0dba\u0db1\u0dca\u0d85\u0db1\u0dd4\u0dc0 \u0d9c\u0dd4\u0dab \u0d9a\u0dbb\u0db1\u0dca\u0db1
\n", "Normalization layer
\n": "\u0dc3\u0dcf\u0db8\u0dcf\u0db1\u0dca\u0dba\u0d9a\u0dbb\u0dab\u0dba\u0dc3\u0dca\u0dae\u0dbb\u0dba
\n", "Number of channels
\n": "\u0db1\u0dcf\u0dbd\u0dd2\u0d9a\u0dcf\u0d9c\u0dab\u0db1
\n", "Number of output channels at this resolution
\n": "\u0db8\u0dd9\u0db8\u0dc0\u0dd2\u0db7\u0dda\u0daf\u0db1\u0dba\u0dda \u0db4\u0dca\u0dbb\u0dad\u0dd2\u0daf\u0dcf\u0db1 \u0db1\u0dcf\u0dbd\u0dd2\u0d9a\u0dcf \u0d9c\u0dab\u0db1
\n", "Number of resolutions
\n": "\u0dba\u0ddd\u0da2\u0db1\u0dcf\u0d9c\u0dab\u0db1
\n", "Project image into feature map
\n": "\u0dc0\u0dd2\u0dc1\u0dda\u0dc2\u0dcf\u0d82\u0d9c\u0dc3\u0dd2\u0dad\u0dd2\u0dba\u0db8\u0da7 \u0dc0\u0dca\u0dba\u0dcf\u0db4\u0dd8\u0dad\u0dd2 \u0dbb\u0dd6\u0db4\u0dba
\n", "Projections for query, key and values
\n": "\u0dc0\u0dd2\u0db8\u0dc3\u0dd4\u0db8, \u0dba\u0dad\u0dd4\u0dbb \u0dc3\u0dc4 \u0d85\u0d9c\u0dba\u0db1\u0dca \u0dc3\u0db3\u0dc4\u0dcf \u0db4\u0dca\u0dbb\u0d9a\u0dca\u0dc2\u0dda\u0db4\u0dab
\n", "Reshape to _^_0_^_
\n": "\u0db1\u0dd0\u0dc0\u0dad\u0dc4\u0dd0\u0da9\u0d9c\u0dc3\u0dca\u0dc0\u0db1\u0dca\u0db1 _^_0_^_
\n", "Scale for dot-product attention
\n": "\u0dad\u0dd2\u0dad\u0dca\u0db1\u0dd2\u0dc2\u0dca\u0db4\u0dcf\u0daf\u0db1 \u0d85\u0dc0\u0db0\u0dcf\u0db1\u0dba \u0dc3\u0db3\u0dc4\u0dcf \u0db4\u0dbb\u0dd2\u0db8\u0dcf\u0dab\u0dba
\n", "Second convolution layer
\n": "\u0daf\u0dd9\u0dc0\u0db1\u0d9a\u0dd0\u0da7\u0dd2 \u0d9c\u0dd0\u0dc3\u0dd4\u0dab\u0dd4 \u0dc3\u0dca\u0dae\u0dbb\u0dba
\n", "Second half of U-Net
\n": "\u0dba\u0dd6-\u0db1\u0dd9\u0da7\u0dca\u0dc4\u0dd2 \u0daf\u0dd9\u0dc0\u0db1 \u0db7\u0dcf\u0d9c\u0dba
\n", "Second linear layer
\n": "\u0daf\u0dd9\u0dc0\u0db1\u0dbb\u0dda\u0d9b\u0dd3\u0dba \u0dc3\u0dca\u0dae\u0dbb\u0dba
\n", "Softmax along the sequence dimension _^_0_^_
\n": "\u0d85\u0db1\u0dd4\u0d9a\u0dca\u0dbb\u0db8\u0dd2\u0d9a\u0db8\u0dcf\u0db1\u0dba \u0d94\u0dc3\u0dca\u0dc3\u0dda \u0dc3\u0ddc\u0dc6\u0dca\u0da7\u0dca\u0db8\u0dd0\u0d9a\u0dca\u0dc3\u0dca _^_0_^_
\n", "Split query, key, and values. Each of them will have shape _^_0_^_
\n": "\u0dc0\u0dd2\u0db8\u0dc3\u0dd4\u0db8, \u0dba\u0dad\u0dd4\u0dbb \u0dc3\u0dc4 \u0d85\u0d9c\u0dba\u0db1\u0dca \u0db6\u0dd9\u0daf\u0dd3\u0db8\u0dca. \u0d94\u0dc0\u0dd4\u0db1\u0dca \u0d91\u0d9a\u0dca \u0d91\u0d9a\u0dca \u0dc4\u0dd0\u0da9\u0dba \u0d87\u0dad _^_0_^_
\n", "The input has _^_0_^_ because we concatenate the output of the same resolution from the first half of the U-Net
\n": "\u0d86\u0daf\u0dcf\u0db1\u0dba\u0da7\u0d87\u0dad\u0dca\u0dad\u0dda \u0dba\u0dd6-\u0db1\u0dd9\u0da7\u0dca \u0dc4\u0dd2 \u0db4\u0dc5\u0db8\u0dd4 \u0db7\u0dcf\u0d9c\u0dba\u0dda \u0dc3\u0dd2\u0da7 \u0d91\u0d9a\u0db8 \u0dc0\u0dd2\u0db7\u0dda\u0daf\u0db1\u0dba\u0dda \u0db4\u0dca\u0dbb\u0dad\u0dd2\u0daf\u0dcf\u0db1\u0dba \u0d85\u0db4 \u0dc3\u0d82\u0dba\u0dd4\u0d9a\u0dca\u0dad \u0d9a\u0dbb\u0db1 _^_0_^_ \u0db6\u0dd0\u0dc0\u0dd2\u0db1\u0dd2
\n", "Time embedding layer. Time embedding has _^_0_^_ channels
\n": "\u0d9a\u0dcf\u0dbd\u0dba\u0d9a\u0dcf\u0dc0\u0dd0\u0daf\u0dca\u0daf\u0dd3\u0db8 \u0dc3\u0dca\u0dae\u0dbb\u0dba. \u0d9a\u0dcf\u0dbd \u0d9a\u0dcf\u0dc0\u0dd0\u0daf\u0dca\u0daf\u0dd3\u0db8 _^_0_^_ \u0db1\u0dcf\u0dbd\u0dd2\u0d9a\u0dcf \u0d87\u0dad
\n", "Transform to _^_0_^_
\n": "\u0db6\u0dc0\u0da7\u0db4\u0dbb\u0dd2\u0dc0\u0dbb\u0dca\u0dad\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1 _^_0_^_
\n", "Transform with the MLP
\n": "\u0d91\u0db8\u0dca\u0d91\u0dbd\u0dca\u0db4\u0dd3\u0dc3\u0db8\u0d9f \u0db4\u0dbb\u0dd2\u0dc0\u0dbb\u0dca\u0dad\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1
\n", "Up sample at all resolutions except last
\n": "\u0db4\u0dc3\u0dd4\u0d9c\u0dd2\u0dba\u0dc4\u0dd0\u0dbb \u0d85\u0db1\u0dd9\u0d9a\u0dd4\u0dad\u0dca \u0dc3\u0dd2\u0dba\u0dbd\u0dd4 \u0dba\u0ddd\u0da2\u0db1\u0dcf \u0daf\u0dd3 \u0d86\u0daf\u0dbb\u0dca\u0dc1 \u0daf\u0d9a\u0dca\u0dc0\u0dcf
\n", "