all = ['learn', 'classify_image', 'categories', 'image', 'label', 'examples', 'intf']
from fastai.vision.all import *
import gradio as gr
learn = load_learner('export.pkl')
categories = ('Albacore', 'American Lobster', 'Atlantic Cod', 'Atlantic Salmon', 'Bigeye', 'Bighead Carp', 'Blue Crab', 'Blue Shark', 'Blue Swimming Crab', 'Chinook Salmon', 'Chum Salmon', 'Coho Salmon', 'Common Carp', 'Common Octopus', 'Darkblotched Rockfish', 'Devil Firefish', 'Dolphinfish', 'European Anchovy', 'European Sea Bass', 'Florida Pompano', 'Giant Tiger Prawn', 'Grass Carp', 'Haddock', 'Hogfish', 'Lake Sturgeon', 'Lake Trout', 'Lake Whitefish', 'Lingcod', 'Longtail Tuna', 'Mutton Bluefin Tuna', 'Norway Lobster', 'Pacific Bluefin Tuna', 'Pacific Cod', 'Pacific Herring', 'Rainbow Trout', 'Red Sea Urchin', 'Sablefish', 'Shortfin Mako Shark', 'Shortspine Thornyfish', 'Silver Carp', 'Skipjack Tuna', 'Snow Crab', 'Softeshell Clam', 'Southern Bluefin Tuna', 'Swordfish', 'Walleye', 'Whiteleg Shrimp', 'Yellow Perch', 'Yellowfin Tuna', 'Yellowtail Amberjack')
def classify_image(img):
pred, idx, probs = learn.predict(img)
results = {category: float(prob) for category, prob in zip(categories, probs) if prob >= 0.1}
return results, resources.get(pred)
labels = ['Swordfish', 'Yellowfin Tuna', 'Blue Swimming Crab', 'Atlantic Salmon', 'Pacific Cod', 'Albacore', 'American Lobster', 'Atlantic Cod', 'Bigeye Tuna', 'Bighead Carp', 'Blue Crab', 'Blue Shark', 'Chinook Salmon', 'Coho Salmon', 'Common Carp', 'Common Octopus', 'Dolphinfish', 'Grass Carp', 'Lake Trout', 'Lake Whitefish', 'Lingcod', 'Longtail Tuna', 'Rainbow Trout', 'Sablefish', 'Shortfin Mako Shark', 'Silver Carp', 'Skipjack Tuna', 'Walleye', 'Whiteleg Shrimp', 'Yellow Perch', 'Yellowtail Amberjack', 'Pacific Bluefin Tuna', 'Southern Bluefin Tuna', 'Giant Tiger Prawn', 'Lake Sturgeon', 'Florida Pompano', 'Darkblotched Rockfish', 'Chum Salmon', 'Devil Firefish', 'Red Sea Urchin', 'Snow Crab', 'Softshell Clam', 'Norway Lobster', 'Shortspine Thornyfish', 'Pacific Herring', 'Hogfish', 'Haddock', 'European Anchovy', 'European Sea Bass']
urls = ['
https://sfw-images.s3-accelerate.amazonaws.com/reports/T/MBA_SeafoodWatch_Tuna_Atlantic.pdf','https://sfw-images.s3-accelerate.amazonaws.com/reports/T/MBA_SeafoodWatch_Tuna_Atlantic.pdf','https://sfw-images.s3-accelerate.amazonaws.com/reports/C/seafood-watch-blue-swimming-crab-india-911.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/S/MBA_SeafoodWatch_Atlantic_salmon_North_America.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/C/MBA_SeafoodWatch_JapanPacificCodReport.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/S/MBA_SeafoodWatch_CA_OpahSharkSwordfishTuna.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/L/seafood-watch-american-lobster-us-524.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/S/seafood-watch-cod-haddock-pollock-us-983.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/T/MBA_SeafoodWatch_Tuna_large_pelagics_Indian_Ocean_Report.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/C/MBA_SeafoodWatch_US_Asian_Carp.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/C/MBA_SeafoodWatch_Arched_Blue_Cortez_Crab_MexicoCampeche_report.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/T/seafood-watch-tuna-and-large-pelagics-hawaii-544.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/S/MBA_SeafoodWatch_BCChinookCohoSalmonReport.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/S/MBA_SeafoodWatch_BCChinookCohoSalmonReport.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/C/MBA_SeafoodWatch_US_Asian_Carp.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/O/MBA_SeafoodWatch_Octopus_Mexico_Report.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/L/MBA_SeafoodWatch_Large_pelagics_mahi_wahoo_sharks_Atlantic_Report.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/C/MBA_SeafoodWatch_US_Asian_Carp.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/G/MBA_SeafoodWatch_Great_Lakes_Michigan_Report.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/G/MBA_SeafoodWatch_Great_Lakes_Michigan_Report.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/L/MBA_SeafoodWatch_Lingcod&YelloweyeRockfishReport.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/T/MBA_SeafoodWatch_Longtail_tuna_Report.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/T/seafood-watch-farmed-trout-chile-27817.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/S/MBA_SeafoodWatch_SablefishTotem_Report.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/S/MBA_SeafoodWatch_CA_OpahSharkSwordfishTuna.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/C/MBA_SeafoodWatch_US_Asian_Carp.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/T/seafood-watch-tuna-and-large-pelagics-north-south-and-western-central-pacific-27725.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/W/MBA_SeafoodWatch_Walleye_RedLakes_Report.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/S/MBA_SeafoodWatch_Shrimp_Ecuador_Report.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/G/MBA_SeafoodWatch_Great_Lakes_Ontario_Report.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/S/MBA_SeafoodWatch_CAYellowtail_WhiteSeabassReport.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/T/seafood-watch-tuna-and-large-pelagics-north-south-and-western-central-pacific-27725.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/T/seafood-watch-tuna-and-large-pelagics-north-south-and-western-central-pacific-27725.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/S/MBA_SeafoodWatch_FarmedShrimp_India_Report.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/S/MBA_SeafoodWatch_Sturgeon_Canada.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/P/MBA_SeafoodWatch_Florida_pompano_US_WCPO.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/R/MBA_SeafoodWatch_USWestCoast_Rockfish_Report.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/S/MBA_SeafoodWatch_Salmon_Pacific_US_West_Coast_Report.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/L/MBA_SeafoodWatch_Lionfish_Report.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/U/MBA_SeafoodWatch_Urchin(Uspacific).pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/C/MBA_SeafoodWatch_Russian_Far_East_Crab_Report.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/C/MBA_SeafoodWatch_ClamsReport.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/L/MBA_TSC_NorwayLobsterReport.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/G/MBA_SeafoodWatch_California_Groundfish_Collective_Fishery_Report.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/H/MBA_SeafoodWatch_PacificHerring_British_Columbia_Report.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/H/MBA_SeafoodWatch_Hogfish_US.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/S/seafood-watch-cod-haddock-pollock-us-983.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/S/seafood-watch-sardine-morocco-28228.pdf', '
https://sfw-images.s3-accelerate.amazonaws.com/reports/S/MBA_SeafoodWatch_Seabream_Seabass_Meagre_Report.pdf']
resources = dict(zip(labels, urls))
image=gr.Image(height = 192, width = 192)
label = gr.Label()
text = gr.Textbox()
examples = ['bigeye.jpg', 'lobster.jpg', 'albacore.jpg']
intf = gr.Interface(fn=classify_image, inputs=image, outputs=[label,text], examples=examples)
intf.launch(inline=False)
movie_factors = learn.model.i_weight.weight
idx = dls.classes['CommonNames'].o2i['Bighead carp']
distances = nn.CosineSimilarity(dim=1)(movie_factors, movie_factors[idx][None])
idx = distances.argsort(descending=True)[1:6]
dls.classes['CommonNames'][idx]
ratings.to_csv('ratings.csv',index=False)