python TypeError:path应该是path-like或io.BytesIO,而不是< class 'shiny.reactive._reactives. Value'>

8fq7wneg  于 2023-11-16  发布在  Python
关注(0)|答案(1)|浏览(140)

我正在为狗的品种分类器创建一个简单的shiny应用程序。用户可以上传狗的图片,然后让shiny应用程序显示预测的品种。
应用程序代码的简化版本如下:

from shiny import App, Inputs, Outputs, Session, reactive, render, ui
import keras
import tensorflow as tf
import numpy as np
import pickle

app_ui = ui.page_fluid(
    ui.input_file("dog_pic", "Upload your dog picture!", accept=[".jpeg"], multiple=False),
    ui.output_text("txt")

)

def server(input, output, session):

    # PROCESSING IMAGE:
    @reactive.Calc
    def parsed_file():
         image = tf.keras.preprocessing.image.load_img(input.dog_pic, target_size=(224, 224))
         input_arr = tf.keras.preprocessing.image.img_to_array(image)
         input_arr = np.array([input_arr])
         input_arr = input_arr.astype('float32') / 255.
         return input_arr

    # PARSING IMAGE THROUGH TO MODEL
    @output
    @render.text
    def txt():

        model = tf.keras.models.load_model('model')
        dog_prediction = model.predict(parsed_file())
        return f"Predicted dog breed is {dog_prediction}!"

app = App(app_ui, server)

字符串
我得到的错误是:x1c 0d1x
这是什么意思?谢谢!

hgc7kmma

hgc7kmma1#

你的函数parsed_file()txt()会在你启动shiny应用程序时被调用。但那时你的文件还没有加载。你必须添加类似“如果文件可用,那么."的内容。

相关问题