Skip to content

Instantly share code, notes, and snippets.

View pythonlessons's full-sized avatar
🏠
Working from home

Rokas Liuberskis pythonlessons

🏠
Working from home
View GitHub Profile
@pythonlessons
pythonlessons / build_transformer_2.py
Created August 22, 2023 14:47
build_transformer
class Encoder(tf.keras.layers.Layer):
"""
A custom TensorFlow layer that implements the Encoder. This layer is mostly used in the Transformer models
for natural language processing tasks, such as machine translation, text summarization or text classification.
Methods:
call: Performs the forward pass of the layer.
Attributes:
d_model (int): The dimensionality of the model.
@pythonlessons
pythonlessons / build_transformer_1.py
Created August 22, 2023 14:47
build_transformer
encoder_vocab_size = 1000
d_model = 512
encoder_embedding_layer = PositionalEmbedding(vocab_size, d_model)
random_encoder_input = np.random.randint(0, encoder_vocab_size, size=(1, 100))
encoder_embeddings = encoder_embedding_layer(random_encoder_input)
print("encoder_embeddings shape", encoder_embeddings.shape)
@pythonlessons
pythonlessons / build_transformer_0.py
Created August 22, 2023 14:47
build_transformer
class EncoderLayer(tf.keras.layers.Layer):
"""
A single layer of the Encoder. Usually there are multiple layers stacked on top of each other.
Methods:
call: Performs the forward pass of the layer.
Attributes:
self_attention (GlobalSelfAttention): The global self-attention layer.
ffn (FeedForward): The feed-forward layer.
@pythonlessons
pythonlessons / transformer_attention_12.css
Created August 16, 2023 12:45
transformer_attention
encoder_embeddings shape (1, 100, 512)
feed_forward_output shape (1, 100, 512)
@pythonlessons
pythonlessons / transformer_attention_11.css
Created August 16, 2023 12:45
transformer_attention
decoder_embeddings shape (1, 110, 512)
causal_self_attention_output shape (1, 110, 512)
Difference between the two outputs: 0.0
@pythonlessons
pythonlessons / transformer_attention_10.css
Created August 16, 2023 12:45
transformer_attention
encoder_embeddings shape (1, 100, 512)
global_self_attention_output shape (1, 100, 512)
@pythonlessons
pythonlessons / transformer_attention_9.css
Created August 16, 2023 12:45
transformer_attention
encoder_embeddings shape (1, 100, 512)
decoder_embeddings shape (1, 110, 512)
cross_attention_output shape (1, 110, 512)
@pythonlessons
pythonlessons / transformer_attention_8.py
Created August 16, 2023 12:45
transformer_attention
encoder_vocab_size = 1000
d_model = 512
encoder_embedding_layer = PositionalEmbedding(vocab_size, d_model)
random_encoder_input = np.random.randint(0, encoder_vocab_size, size=(1, 100))
encoder_embeddings = encoder_embedding_layer(random_encoder_input)
print("encoder_embeddings shape", encoder_embeddings.shape)
@pythonlessons
pythonlessons / transformer_attention_7.py
Created August 16, 2023 12:45
transformer_attention
class FeedForward(tf.keras.layers.Layer):
"""
A class that implements the feed-forward layer.
Methods:
call: Performs the forward pass of the layer.
Attributes:
seq (tf.keras.Sequential): The sequential layer that contains the feed-forward layers. It applies the two feed-forward layers and the dropout layer.
add (tf.keras.layers.Add): The Add layer.
@pythonlessons
pythonlessons / transformer_attention_6.py
Created August 16, 2023 12:45
transformer_attention
decoder_vocab_size = 1100
d_model = 512
decoder_embedding_layer = PositionalEmbedding(vocab_size, d_model)
random_decoder_input = np.random.randint(0, decoder_vocab_size, size=(1, 110))
decoder_embeddings = decoder_embedding_layer(random_decoder_input)
print("decoder_embeddings shape", decoder_embeddings.shape)