実現したいこと
このエラーを消すこと
前提
tensorflowとgradioで数字を書いたら何の数字なのか教えてくれるプログラムを作ってます。
発生している問題・エラーメッセージ
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) Cell In[14], line 5 3 prediction = model.predict(img).tolist()[0] 4 return {str(i): prediction[i] for i in range(10)} ----> 5 label = gr.outputs.Label(num_top_classes=4) 6 interface = gr.interface(fn=recognize_digit, inputs="sketchpad", outputs=label, live=True, title="Digit Recognizer") AttributeError: module 'gradio' has no attribute 'outputs'
該当のソースコード
python
1import tensorflow as tf 2import gradio as gr 3import numpy as np 4tf.get_logger().setLevel("ERROR")5mnist = tf.keras.datasets.mnist 6(x_train, y_train), (x_test, y_test) = mnist.load_data()7x_train, x_test = x_train / 255.0, x_test / 255.08model = tf.keras.models.Sequential([9 tf.keras.layers.Flatten(input_shape=(28, 28)),10 tf.keras.layers.Dense(128, activation='relu'),11 tf.keras.layers.Dense(10, activation="softmax")12])13model.compile(optimizer='adam',14 loss="sparse_categorical_crossentropy",15 metrics=['accuracy'])16model.fit(x_train, y_train, epochs=10)17def recognize_digit(img):18 img = img.reshape(1, 28, 28)19 prediction = model.predict(img).tolist()[0]20 return {str(i): prediction[i] for i in range(10)}21label = gr.outputs.Label(num_top_classes=4)22interface = gr.interface(fn=recognize_digit, inputs="sketchpad", outputs=label, live=True, title="Digit Recognizer")23interface.launch(share=True)
試したこと
chatgptに言われたのでlabel = gr.outputs.Label(num_top_classes=4)をlabel = gr.output.Label(num_top_classes=4)にした。
gradioをインストールし直した。
補足情報(FW/ツールのバージョンなど)
anaconda 23.11.0
Python 3.9.18
pip 23.3.1
tensorflow 2.15.0
gradio 4.8.0
0 コメント