File size: 994 Bytes
aae53a1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import streamlit as st, tensorflow as tf, numpy as np, json
from PIL import Image

st.set_page_config(page_title="CNN vs Transfer", page_icon="🚢")
st.title("🌾🍇 CNN vs Transfer Learning")
st.caption("Rice (5 sınıf) ve Grapevine Disease — iki ayrı modelin tahminleri")

MODELS = {"🌾 Rice": "rice", "🍇 Grapevine Disease": "grapevine"}
choice = st.selectbox("Veri seti / Model", list(MODELS.keys()))
tag = MODELS[choice]

@st.cache_resource
def load(tag):
    return tf.keras.models.load_model(f"model_{tag}.keras"), json.load(open(f"classes_{tag}.json"))

model, CLS = load(tag)

f = st.file_uploader("Görsel yükle", ["jpg","jpeg","png"])
if f:
    img = Image.open(f).convert("RGB").resize((224,224))
    st.image(img, width=300)
    p = model.predict(np.expand_dims(np.array(img,"float32"),0), verbose=0)[0]
    idx = int(p.argmax())
    st.subheader(f"Tahmin: **{CLS[idx]}**")
    st.metric("Güven", f"%{p[idx]*100:.1f}")
    st.bar_chart(dict(zip(CLS, p.astype(float))))