画像出力の際にAttributeErrorが出て空のグラフが表示される

実現したいこと

下記のコードに少し手を加えたものを使い、セグメンテーションを行いたい。

https://www.tensorflow.org/tutorials/images/segmentation?hl=ja

前提

TensorFlowでセグメンテーションを行うプログラムを作成中です。

学習後にテスト画像を用いて予測を行おうとしましたが、以下のエラーが出た後、空のグラフ(軸のみのグラフ)が表示されてしまい、予測結果の出力ができません。

発生している問題・エラーメッセージ

AttributeError Traceback (most recent call last) <ipython-input-34-aae015b82389> in <module> 3 pred_mask = pred_mask[..., tf.newaxis] 4 return pred_mask[0] ----> 5 display([test_imgarray[0], testmask_imgarray[0],create_mask2(model.predict(test_imgarray))]) 6 def create_mask3(pred_mask): 7 pred_mask = tf.argmax(pred_mask, axis=-1) <ipython-input-20-b207b8ddfc2a> in display(display_list) 7 plt.subplot(1, len(display_list), i+1) 8 plt.title(title[i]) ----> 9 plt.imshow(tf.keras.utils.array_to_img(display_list[i])) 10 plt.axis('off') 11 plt.show() AttributeError: module 'tensorflow_core.keras.utils' has no attribute 'array_to_img'

該当のソースコード

Python

1import tensorflow as tf 2import tensorflow_datasets as tfds 3from tensorflow_examples.models.pix2pix import pix2pix 4from IPython.display import clear_output 5%matplotlib inline 6 7import numpy as np 8import matplotlib.pyplot as plt 9 10from tensorflow.python import keras 11from tensorflow.python.keras import backend as K 12from tensorflow.python.keras.models import Model, Sequential 13from tensorflow.python.keras.layers import Conv2D, Dense, Input, MaxPooling2D, UpSampling2D, Lambda 14from tensorflow.python.keras.preprocessing.image import load_img, img_to_array, array_to_img, ImageDataGenerator 15from tensorflow.keras.preprocessing.image import img_to_array 16 17##中略##18 19def display(display_list):20 plt.figure(figsize=(15, 15))21 22 title = ['Input Image', 'True Mask', 'Predicted Mask']23 24 for i in range(len(display_list)):25 plt.subplot(1, len(display_list), i+1)26 plt.title(title[i])27 plt.imshow(tf.keras.utils.array_to_img(display_list[i]))28 plt.axis('off')29 plt.show()30 31##中略##32 33def create_mask2(pred_mask):34 pred_mask = tf.argmax(pred_mask, axis=-1)35 pred_mask = pred_mask[..., tf.newaxis]36 return pred_mask[0]37display([test_imgarray[0], testmask_imgarray[0],create_mask2(model.predict(test_imgarray))])38 39

試したこと

ネットに、空のグラフが出力されるのはTkinterが原因だと書かれていたため、TclとTkinterのインストールを行いましたが変化ありません。

補足情報(FW/ツールのバージョンなど)

各バージョンは以下の通りです。

  • Python 2.7.5
  • TensorFlow 2.6.2
  • keras 2.6.0

コメントを投稿

0 コメント