मैं केरस में एक कन्वेन्शनल मॉडल को ट्रेनिंग दे रहा हूं। मेरे प्रशिक्षण डेटा का आकार है
(60000, 28, 28, 1)
मैं यहां एक साधारण मॉडल बनाता हूं
model = Sequential()
model.add(
Conv2D(
filters=32,
kernel_size=(4, 4),
input_shape=(28, 28, 1),
activation='relu'
)
)
model.add(MaxPool2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(10, activation='softmax'))
model.compile(
loss='categorical_crossentropy',
optimizer='adam',
metrics=['accuracy']
)
जब मैंने इस मॉडल को निम्न पंक्ति में अपने डेटा में फिट करने का प्रयास किया
model.fit(
x_train,
y_train_hot_encode,
epochs=20,
validation_data=(x_test, y_test_hot_encode),
)
मैंने लॉग में कुछ अजीब देखा
Epoch 1/20
1875/1875 [==============================] - 18s 9ms/step - loss: 0.5311 - accuracy: 0.8109 - val_loss: 0.3381 - val_accuracy: 0.8780
Epoch 2/20
1875/1875 [==============================] - 19s 10ms/step - loss: 0.2858 - accuracy: 0.8948 - val_loss: 0.2820 - val_accuracy: 0.8973
Epoch 3/20
1875/1875 [==============================] - 18s 9ms/step - loss: 0.2345 - accuracy: 0.9150 - val_loss: 0.2732 - val_accuracy: 0.9001
Epoch 4/20
1875/1875 [==============================] - 18s 9ms/step - loss: 0.2016 - accuracy: 0.9247 - val_loss: 0.2549 - val_accuracy: 0.9077
Epoch 5/20
1875/1875 [==============================] - 17s 9ms/step - loss: 0.1644 - accuracy: 0.9393 - val_loss: 0.2570 - val_accuracy: 0.9077
Epoch 6/20
1875/1875 [==============================] - 17s 9ms/step - loss: 0.1434 - accuracy: 0.9466 - val_loss: 0.2652 - val_accuracy: 0.9119
Epoch 7/20
1875/1875 [==============================] - 17s 9ms/step - loss: 0.1225 - accuracy: 0.9553 - val_loss: 0.2638 - val_accuracy: 0.9135
जैसा कि आप देख सकते हैं, प्रत्येक युग को 1875 छवियों पर प्रशिक्षित किया गया था, न कि संपूर्ण 60K छवियों पर, ऐसा क्यों है? या मैं गलत तरीके से लॉग पढ़ रहा हूँ?
1 उत्तर
ऐसा इसलिए है क्योंकि वहां दिखाई गई संख्या प्रशिक्षित उदाहरणों की संख्या के बजाय चरणों की संख्या है। चूंकि आपने batch_size
को model.fit()
में आपूर्ति नहीं की, इसने डिफ़ॉल्ट बैच आकार 32 का उपयोग किया।
प्रति युग चरणों की अपेक्षित संख्या ceil(60000/32) = 1875
है, जो लॉग में दिखाए गए चरणों के अनुरूप है।
संबंधित सवाल
नए सवाल
tensorflow
TensorFlow एक ओपन-सोर्स लाइब्रेरी और एपीआई है जिसे Google द्वारा लिखित और रखरखाव के लिए बनाया गया है। मशीन सीखने की समस्याओं को हल करने के लिए एपीआई का उपयोग करने के बारे में सवालों के लिए इस टैग का उपयोग भाषा-विशिष्ट टैग ([अजगर], [सी ++], [जावास्क्रिप्ट], [आर], आदि के साथ करें। TensorFlow API के साथ उपयोग की जा सकने वाली प्रोग्रामिंग भाषाएं बदलती हैं, इसलिए आपको प्रोग्रामिंग भाषा को निर्दिष्ट करना होगा। कृपया आवेदन क्षेत्र जैसे [ऑब्जेक्ट-डिटेक्शन] को भी निर्दिष्ट करें।