首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >streamlit.errors.StreamlitAPIException:‘valid ()’不是一个有效的Streamlit命令

streamlit.errors.StreamlitAPIException:‘valid ()’不是一个有效的Streamlit命令
EN

Stack Overflow用户
提问于 2022-06-27 06:21:42
回答 1查看 94关注 0票数 0

我试图将图像传递给我的函数loadImage

代码语言:javascript
复制
def loadImage(image):
    np_image = Image.open(image)
    np_image = np.array(np_image).astype('float32') / 255
    np_image = transform.resize(np_image, (224, 224, 3))
    #  np_image = np.expand_dims(np_image, axis=0)
    return np_image

当我试图传递从Streamlit图像读取的图像时,它会给出以下错误:

代码语言:javascript
复制
raise StreamlitAPIException(message)
streamlit.errors.StreamlitAPIException: `seek()` is not a valid Streamlit command.

我的主要功能命令:

代码语言:javascript
复制
list = predictions(model=model, breed_list=breed_list, image=st.image(img))

预测功能:

代码语言:javascript
复制
def predictions(model, breed_list, image):
    probabilities = model.predict(helper.loadImage(image))
    return probabilities

加载图像

代码语言:javascript
复制
img_file = st.sidebar.file_uploader(label='Upload a file', type=['png', 'jpg'])
    if img_file:
        img = Image.open(img_file)

全误差

EN

回答 1

Stack Overflow用户

发布于 2022-06-28 02:13:37

Image.open()需要一个文件名、pathlib.Path或IO类对象,但是您要将st.image(img)的输出传递给它,它将是一个对象(本质上是一个Streamlit元素)。由于st.image(img)的输出不是文件名(即字符串),也不是pathlib.Path对象,因此Image.open()假设它是一个类似IO的对象,因此它试图调用.seek()方法( DeltaGenerator对象不提供该方法,这就导致了错误)。

根据您的代码判断,我假设img表示要显示的某个图像的文件名。如果是这种情况,您可能需要更改代码,以便首先将图像加载到numpy数组中,然后在Streamlit中呈现加载的图像,然后根据它进行预测:

代码语言:javascript
复制
def loadImage(image):
    np_image = Image.open(image)
    np_image = np.array(np_image).astype('float32') / 255
    np_image = transform.resize(np_image, (224, 224, 3))
    #  np_image = np.expand_dims(np_image, axis=0)
    return np_image

def predictions(model, breed_list, image):
    probabilities = model.predict(loadImage(image))
    return probabilities

loaded_img = loadImage(img)
st.image(img)
list = predictions(model=model, breed_list=breed_list, image=loaded_img)

此外,顺便提一下:为了减少混乱,我强烈建议在list = predictions(...)中将list = predictions(...)重命名为与Python内置的list不冲突的东西--可能是predicted

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72767693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档