Airin-chan commited on
Commit
166d00d
·
verified ·
1 Parent(s): 608f659

Upload 3 files

Browse files
Files changed (4) hide show
  1. .gitattributes +1 -0
  2. MicroGenerativeTeks.py +93 -0
  3. Pretrained.keras +3 -0
  4. tokenizer.json +0 -0
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ Pretrained.keras filter=lfs diff=lfs merge=lfs -text
MicroGenerativeTeks.py ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import tensorflow as tf
2
+ from tensorflow import keras
3
+
4
+ @keras.utils.register_keras_serializable()
5
+ class BlockDecoders (keras.Layer) :
6
+ def __init__ (self,d_model,ffn_dim,num_heads,dropout_rate=0.1,**kwargs) :
7
+ super(BlockDecoders,self).__init__(**kwargs)
8
+ self.mha = keras.layers.MultiHeadAttention(num_heads=num_heads,key_dim=d_model,dropout=dropout_rate)
9
+ self.normal1 = keras.layers.LayerNormalization(epsilon=1e-6)
10
+ self.ffn = keras.Sequential([
11
+ keras.layers.Dense(ffn_dim,activation=keras.activations.gelu),
12
+ keras.layers.Dense(d_model)
13
+ ])
14
+ self.dropout = keras.layers.Dropout(rate=dropout_rate)
15
+ self.normal2 = keras.layers.LayerNormalization(epsilon=1e-6)
16
+ self.d_model = d_model
17
+ self.ffn_dim = ffn_dim
18
+ self.num_head = num_heads
19
+ self.dropout_rate = dropout_rate
20
+
21
+ def call(self,x,training=False) :
22
+ attn = self.mha(x,x,x,training=training,use_causal_mask=True)
23
+ attn = self.normal1(attn + x)
24
+
25
+ ffn = self.ffn(attn)
26
+ ffn = self.dropout(ffn)
27
+ ffn = self.normal2(ffn + attn)
28
+ return ffn
29
+
30
+ def get_config(self) :
31
+ config = super(BlockDecoders,self).get_config()
32
+ config.update ({
33
+ 'd_model' : self.d_model,
34
+ 'ffn_dim' : self.ffn_dim,
35
+ 'num_head' : self.num_head,
36
+ 'dropout_rate' : self.dropout_rate
37
+ })
38
+ return config
39
+
40
+ @classmethod
41
+ def from_config(cls,config) :
42
+ return cls(**config)
43
+
44
+ @keras.utils.register_keras_serializable()
45
+ class Micro_Gen_Teks (keras.Model) :
46
+ def __init__ (self,vocab_size,d_model,ffn_dim,num_heads,num_blocks,maxpos,dropout_rate=0.1,**kwargs) :
47
+ super(Micro_Gen_Teks,self).__init__(**kwargs)
48
+ self.Embedding = keras.layers.Embedding(vocab_size,d_model)
49
+ self.pos_embedding = keras.layers.Embedding(maxpos,d_model)
50
+ self.BlockDecoders = [BlockDecoders(
51
+ d_model=d_model,ffn_dim=ffn_dim,num_heads=num_heads,dropout_rate=dropout_rate
52
+ ) for _ in range(num_blocks)]
53
+ self.final_layer = keras.layers.Dense(vocab_size)
54
+
55
+ self.vocab_size = vocab_size
56
+ self.d_model = d_model
57
+ self.ffn_dim = ffn_dim
58
+ self.num_heads = num_heads
59
+ self.num_blocks = num_blocks
60
+ self.dropout_rate = dropout_rate
61
+ self.maxpos = maxpos
62
+
63
+ def call(self,x,training = True) :
64
+ batch, seq = tf.shape(x)[0], tf.shape(x)[1]
65
+ pos = tf.range(start=0,limit=seq,delta=1)
66
+ pos = self.pos_embedding(pos)
67
+ pos = tf.expand_dims(pos,axis=0)
68
+ x = self.Embedding(x)
69
+ x *= tf.sqrt(tf.cast(self.d_model,dtype=tf.float16))
70
+ x = x + pos
71
+ for block in self.BlockDecoders :
72
+ x = block(x,training=training)
73
+
74
+ x = self.final_layer(x)
75
+ return x
76
+
77
+
78
+ def get_config(self) :
79
+ config = super(Micro_Gen_Teks,self).get_config()
80
+ config.update({
81
+ 'vocab_size' : self.vocab_size,
82
+ 'd_model' : self.d_model,
83
+ 'ffn_dim' : self.ffn_dim,
84
+ 'num_heads' : self.num_heads,
85
+ 'num_blocks' : self.num_blocks,
86
+ 'dropout_rate' : self.dropout_rate,
87
+ 'maxpos' : self.maxpos
88
+ })
89
+ return config
90
+
91
+ @classmethod
92
+ def from_config(cls,config) :
93
+ return cls(**config)
Pretrained.keras ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f834cfad0397399eaa2321b6b4c69ae217a9930ab4c8b9b18d818b37023cec99
3
+ size 52627906
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff