Dense और TimeDistributed लेयर्स

Keras के साथ Machine Translation

Thushan Ganegedara

Data Scientist and Author

Dense लेयर परिचय

  • एक इनपुट वेक्टर लेकर प्रायिकता-आधारित प्रेडिक्शन देता है।
    • y = Weights.x + Bias

Weights and biases

Keras के साथ Machine Translation

Dense लेयर को समझना

Dense लेयर को परिभाषित करना और उपयोग करना

dense = Dense(3, activation='softmax')
inp = Input(shape=(3,))
pred = dense(inp)
model = Model(inputs=inp, outputs=pred)

कस्टम initialization के साथ Dense लेयर परिभाषित करना

from tensorflow.keras.initializers import RandomNormal
init = RandomNormal(mean=0.0, stddev=0.05, seed=6000)
dense = Dense(3, activation='softmax', 
             kernel_initializer=init, bias_initializer=init)
Keras के साथ Machine Translation

Dense लेयर के इनपुट और आउटपुट

  • Dense softmax लेयर
    • (batch size, input size) आकार का array लेती है
      • जैसे x = [[1, 6, 8], [8, 9, 10]] # a 2x3 array
    • (batch size, num classes) आकार का array लौटाती है
      • जैसे Number of classes = 4
      • जैसे y = [[0.1, 0.3, 0.4, 0.2], [0.2, 0.5, 0.1, 0.2]] # a 2x4 array
    • हर sample के लिए आउटपुट classes पर probability distribution होता है
      • कॉलम्स के along योग 1 होता है
    • हर sample की class np.argmax(y, axis=-1) से पा सकते हैं
      • जैसे np.argmax(y,axis=-1) देता है [2,1]
Keras के साथ Machine Translation

TimeDistributed लेयर को समझना

  • Dense लेयर्स को time-series इनपुट प्रोसेस करने देता है
dense_time = TimeDistributed(Dense(3, activation='softmax'))
inp = Input(shape=(2, 3))
pred = dense_time(inp)
model = Model(inputs=inp, outputs=pred)
Keras के साथ Machine Translation

TimeDistributed लेयर के इनपुट और आउटपुट

  • (batch size, sequence length, input size) आकार का array लेती है
x = [[[1, 6], [8, 2], [1, 2]], 
    [[8, 9], [10, 8], [1, 0]]] # a 2x3x2 array
  • (batch size, sequence length, num classes) आकार का array लौटाती है
    • जैसे Number of classes = 3
y = [[[0.1, 0.5, 0.4], [0.8, 0.1, 0.1], [0.6, 0.2, 0.2]], 
     [[0.2, 0.5, 0.3], [0.2, 0.5, 0.3], [0.2, 0.8, 0.0]]] # a 2x3x3 array
  • हर sample के लिए आउटपुट classes पर probability distribution होता है
  • हर sample की class np.argmax(y, axis=-1) से पा सकते हैं
Keras के साथ Machine Translation

Time dimension पर डेटा slice करना

y = [[[0.1, 0.5, 0.4], [0.8, 0.1, 0.1], [0.6, 0.2, 0.2]], 
     [[0.2, 0.5, 0.3], [0.2, 0.5, 0.3], [0.2, 0.8, 0.0]]] # a 2x3x3 array
classes = np.argmax(y, axis=-1) # a 2 x 3 array

Time-distributed डेटा में slice करके iterate करना

for t in range(3):
  # Get the t-th time-dimension slice of y and classes
  for prob, c in zip(y[:,t,:], classes[:,t]):
     print("Prob: ", prob, ", Class: ", c)
Prob:  [0.1 0.5 0.4] , Class:  1
Prob:  [0.2 0.5 0.3] , Class:  1
Prob:  [0.8 0.1 0.1] , Class:  0
...
Keras के साथ Machine Translation

अभ्यास करते हैं!

Keras के साथ Machine Translation

Preparing Video For Download...