मैं चित्र बनाने के लिए एक जनरेटर का उपयोग कर रहा हूँ। मैंने प्रशिक्षण से पहले जेनरेटर छवि को प्रिंट करने का प्रयास किया और ऐसा लगता है कि आरजीबी के लिए यादृच्छिक मानों को अपेक्षित रूप से आउटपुट करना प्रतीत होता है। हालाँकि, प्रशिक्षण में प्रत्येक चरण को दिखाने के लिए मैं जिस फ़ंक्शन का उपयोग करता हूं, वह कहता है "इनपुट डेटा को RGB डेटा के साथ imshow के लिए मान्य सीमा पर ([0..1] फ़्लोट्स के लिए या [0..255] पूर्णांक के लिए)।"

यदि आवश्यक हो तो मैं पूरा कोड शामिल कर सकता हूं लेकिन यह वास्तव में लंबा है। तो अभी के लिए यहाँ वह कार्य है जो प्रत्येक युग के बाद की छवियों को दिखाता है।

def generate_and_save_images(model, epoch, test_input):
  predictions = model(test_input, training=False)

  fig = plt.figure(figsize=(16,16))

  for i in range(predictions.shape[0]):
      print(predictions)
      plt.subplot(4, 4, i+1)
      plt.imshow(predictions[i, :, :, :] * 127.5 + 127.5)
      plt.axis('off')

  plt.show()

यही छापता है। जाहिर है कि निश्चित रूप से इसका केवल एक हिस्सा है।

[[[[-0.08561043 -0.16898969 -0.04297004]
   [-0.27353853 -0.11766727 -0.05380717]
   [-0.0349301   0.01892653 -0.02630406]
   ...

हालाँकि, प्लॉट में दिखाई देने वाली छवियों में प्रत्येक पिक्सेल के लिए [१,१,१] है। मुझे नहीं पता कि यहाँ क्या हो रहा है।

0
Will Mulcahey 17 जुलाई 2020, 23:30

1 उत्तर

सबसे बढ़िया उत्तर

चूंकि आपके सरणी में फ़्लोट्स हैं, इसलिए आपको मानों को अंतराल [0–1] पर सामान्यीकृत करना चाहिए, न कि 0–255।

तुम कोशिश कर सकते हो:

img = predictions[i, :, :, :]
img = (imp-np.min(img))/np.ptp(img)
plt.imshow(img)
1
Diziet Asahi 18 जुलाई 2020, 00:29