Keras Tensorflow पैकेज के भीतर मौजूद है। इसे नीचे दिए गए कोड की लाइन का उपयोग करके एक्सेस किया जा सकता है।
import tensorflow from tensorflow import keras
Keras फंक्शनल API Sequential API का उपयोग करके बनाए गए मॉडल की तुलना में अधिक लचीले मॉडल बनाने में मदद करता है। फंक्शनल API नॉन-लीनियर टोपोलॉजी वाले मॉडल के साथ काम कर सकता है, लेयर्स साझा कर सकता है और कई इनपुट और आउटपुट के साथ काम कर सकता है। एक डीप लर्निंग मॉडल आमतौर पर एक डायरेक्टेड एसाइक्लिक ग्राफ (DAG) होता है जिसमें कई लेयर्स होती हैं। फंक्शनल API लेयर्स के ग्राफ को बनाने में मदद करता है।
हम नीचे दिए गए कोड को चलाने के लिए Google Colaboratory का उपयोग कर रहे हैं। Google Colab या Colaboratory ब्राउज़र पर Python कोड चलाने में मदद करता है और इसके लिए शून्य कॉन्फ़िगरेशन और GPU (ग्राफिकल प्रोसेसिंग यूनिट्स) तक मुफ्त पहुंच की आवश्यकता होती है। Colaboratory को Jupyter Notebook के शीर्ष पर बनाया गया है। कोड स्निपेट निम्नलिखित है:
उदाहरण
print("Toy ResNet model for CIFAR10") print("Layers generated for model") inputs = keras.Input(shape=(32, 32, 3), name="img") x = layers.Conv2D(32, 3, activation="relu")(inputs) x = layers.Conv2D(64, 3, activation="relu")(x) block_1_output = layers.MaxPooling2D(3)(x) x = layers.Conv2D(64, 3, activation="relu", padding="same")(block_1_output) x = layers.Conv2D(64, 3, activation="relu", padding="same")(x) block_2_output = layers.add([x, block_1_output]) x = layers.Conv2D(64, 3, activation="relu", padding="same")(block_2_output) x = layers.Conv2D(64, 3, activation="relu", padding="same")(x) block_3_output = layers.add([x, block_2_output]) x = layers.Conv2D(64, 3, activation="relu")(block_3_output) x = layers.GlobalAveragePooling2D()(x) x = layers.Dense(256, activation="relu")(x) x = layers.Dropout(0.5)(x) outputs = layers.Dense(10)(x) model = keras.Model(inputs, outputs, name="toy_resnet") print("More information about the model") model.summary()कोड क्रेडिट - https://www.tensorflow.org/guide/keras/functional
आउटपुट
Toy ResNet model for CIFAR10 Layers generated for model More information about the model Model: "toy_resnet" ________________________________________________________________________________ __________________ Layer (type) Output Shape Param # Connected to ================================================================================ ================== img (InputLayer) [(None, 32, 32, 3)] 0 ________________________________________________________________________________ __________________ conv2d_32 (Conv2D) (None, 30, 30, 32) 896 img[0][0] ________________________________________________________________________________ __________________ conv2d_33 (Conv2D) (None, 28, 28, 64) 18496 conv2d_32[0][0] ________________________________________________________________________________ __________________ max_pooling2d_8 (MaxPooling2D) (None, 9, 9, 64) 0 conv2d_33[0][0] ________________________________________________________________________________ __________________ conv2d_34 (Conv2D) (None, 9, 9, 64) 36928 max_pooling2d_8[0][0] ________________________________________________________________________________ __________________ conv2d_35 (Conv2D) (None, 9, 9, 64) 36928 conv2d_34[0][0] ________________________________________________________________________________ __________________ add_12 (Add) (None, 9, 9, 64) 0 conv2d_35[0][0] max_pooling2d_8[0][0] ________________________________________________________________________________ __________________ conv2d_36 (Conv2D) (None, 9, 9, 64) 36928 add_12[0][0] ________________________________________________________________________________ __________________ conv2d_37 (Conv2D) (None, 9, 9, 64) 36928 conv2d_36[0][0] ________________________________________________________________________________ __________________ add_13 (Add) (None, 9, 9, 64) 0 conv2d_37[0][0] add_12[0][0] ________________________________________________________________________________ __________________ conv2d_38 (Conv2D) (None, 7, 7, 64) 36928 add_13[0][0] ________________________________________________________________________________ __________________ global_average_pooling2d_1 (Glo (None, 64) 0 conv2d_38[0][0] ________________________________________________________________________________ __________________ dense_40 (Dense) (None, 256) 16640 global_average_pooling2d_1[0][0] ________________________________________________________________________________ __________________ dropout_2 (Dropout) (None, 256) 0 dense_40[0][0] ________________________________________________________________________________ __________________ dense_41 (Dense) (None, 10) 2570 dropout_2[0][0] ================================================================================ ================== Total params: 223,242 Trainable params: 223,242 Non-trainable params: 0 ________________________________________________________________________________ __________________
व्याख्या
मॉडल में कई इनपुट और आउटपुट हैं।
फंक्शनल API नॉन-लीनियर कनेक्टिविटी टोपोलॉजी के साथ काम करना आसान बनाता है।
लेयर्स वाला यह मॉडल क्रमिक रूप से कनेक्ट नहीं है, इसलिए 'Sequential' API इसके साथ काम नहीं कर सकता।
यहीं पर रेज़िडुअल कनेक्शन तस्वीर में आते हैं।
इसे प्रदर्शित करने के लिए CIFAR10 का उपयोग करके एक सैंपल ResNet मॉडल बनाया गया है।