TensorFlow kujutiste klassifitseerimismudelite õppimise ülekandmine Amazon SageMakeris

Amazon SageMaker pakub sviidi sisseehitatud algoritmid, eelkoolitatud mudelidja eelnevalt ehitatud lahendusmallid aidata andmeteadlastel ja masinõppe (ML) praktikutel ML-mudelite koolitamist ja kasutuselevõttu kiiresti alustada. Neid algoritme ja mudeleid saate kasutada nii juhendatud kui ka järelevalveta õppimiseks. Nad saavad töödelda erinevat tüüpi sisendandmeid, sealhulgas tabelit, pilti ja teksti.

Alates tänasest pakub SageMaker piltide klassifitseerimiseks uut sisseehitatud algoritmi: Piltide klassifikatsioon – TensorFlow. See on juhendatud õppealgoritm, mis toetab paljudes saadaval olevate eelkoolitatud mudelite ülekandeõpet TensorFlow jaotur. See võtab sisendiks pildi ja väljastab iga klassi sildi tõenäosuse. Saate neid eelkoolitatud mudeleid ülekandeõppe abil peenhäälestada isegi siis, kui suur hulk treeningpilte pole saadaval. See on saadaval SageMakeri kaudu sisseehitatud algoritmid samuti läbi SageMaker JumpStart UI sees Amazon SageMaker Studio. Lisateabe saamiseks vaadake selle dokumentatsiooni Piltide klassifikatsioon – TensorFlow ja näidismärkmik Sissejuhatus SageMaker TensorFlow – piltide klassifikatsioon.

Kujutiste klassifitseerimine TensorFlow abil SageMakeris pakub ülekandeõpet paljudel TensorFlow Hubis saadaolevatel eelkoolitatud mudelitel. Vastavalt koolitusandmetes olevate klassisiltide arvule on eelkoolitatud TensorFlow Hubi mudelile kinnitatud klassifikatsioonikiht. Klassifitseerimiskiht koosneb väljalangevast kihist ja tihedast kihist, mis on täielikult ühendatud 2-normilise regulaatoriga kiht, mis initsialiseeritakse juhuslike kaaludega. Mudelitreeningul on hüperparameetrid väljalangemise kihi väljalangevuse määra ja L2 regulaarsustegur tiheda kihi jaoks. Seejärel saab uutel treeningandmetel peenhäälestada kas kogu võrku, sealhulgas eelkoolitatud mudelit, või ainult ülemist klassifikatsioonikihti. Selles ülekandeõpperežiimis saate treenida isegi väiksema andmestikuga.

Kuidas kasutada uut TensorFlow kujutiste klassifitseerimisalgoritmi

Selles jaotises kirjeldatakse, kuidas kasutada TensorFlow kujutiste klassifitseerimisalgoritmi koos SageMaker Python SDK. Teavet selle kohta, kuidas seda Studio kasutajaliideses kasutada, vt SageMaker KiirStart.

Algoritm toetab ülekandeõpet loetletud eelkoolitatud mudelite jaoks TensorFlow rummu mudelid. Iga mudelit identifitseerib kordumatu model_id. Järgmine kood näitab, kuidas peenhäälestada MobileNet V2 1.00 224 tuvastatud model_id tensorflow-ic-imagenet-mobilenet-v2-100-224-classification-4 kohandatud treeninguandmestikul. Igaühele model_id, et käivitada SageMakeri koolitustöö läbi Hindaja klassi SageMaker Python SDK, peate SageMakeris pakutavate utiliitide kaudu hankima Dockeri pildi URI, koolitusskripti URI ja eelkoolitatud mudeli URI. Treeningskripti URI sisaldab kogu vajalikku koodi andmetöötluseks, eelkoolitatud mudeli laadimiseks, mudeli väljaõppeks ja treenitud mudeli järelduste tegemiseks salvestamiseks. Eelkoolitatud mudeli URI sisaldab eelkoolitatud mudeli arhitektuuri määratlust ja mudeli parameetreid. Pange tähele, et Dockeri kujutise URI ja treeningskripti URI on kõigi TensorFlow kujutiste klassifitseerimismudelite puhul samad. Eelkoolitatud mudeli URI on konkreetse mudeli jaoks spetsiifiline. Eelkoolitatud mudeli tarballid on TensorFlow Hubist eelnevalt alla laaditud ja salvestatud sobiva mudelisignatuuriga Amazoni lihtne salvestusteenus (Amazon S3) ämbrid, et koolitustöö toimuks võrgust eraldatult. Vaadake järgmist koodi:

from sagemaker import image_uris, model_uris, script_uris
from sagemaker.estimator import Estimator

model_id, model_version = "tensorflow-ic-imagenet-mobilenet-v2-100-224-classification-4", "*"
training_instance_type = "ml.p3.2xlarge"

# Retrieve the docker image
train_image_uri = image_uris.retrieve(model_id=model_id,model_version=model_version,image_scope="training",instance_type=training_instance_type,region=None,framework=None)

# Retrieve the training script
train_source_uri = script_uris.retrieve(model_id=model_id, model_version=model_version, script_scope="training")

# Retrieve the pre-trained model tarball for transfer learning
train_model_uri = model_uris.retrieve(model_id=model_id, model_version=model_version, model_scope="training")

output_bucket = sess.default_bucket()
output_prefix = "jumpstart-example-ic-training"
s3_output_location = f"s3://{output_bucket}/{output_prefix}/output"

Nende mudelispetsiifiliste koolitusartefaktide abil saate konstrueerida objekti Hindaja klass:

# Create SageMaker Estimator instance
tf_ic_estimator = Estimator(
    role=aws_role,
    image_uri=train_image_uri,
    source_dir=train_source_uri,
    model_uri=train_model_uri,
    entry_point="transfer_learning.py",
    instance_count=1,
    instance_type=training_instance_type,
    max_run=360000,
    hyperparameters=hyperparameters,
    output_path=s3_output_location,
)

Järgmiseks peate võib-olla kohandatud andmestikule õppimise ülekandmiseks muutma treeningu hüperparameetrite vaikeväärtusi, mis on loetletud Hüperparameetrid. Nende hüperparameetrite Pythoni sõnastiku koos vaikeväärtustega saate hankida helistades hyperparameters.retrieve_default, värskendage neid vastavalt vajadusele ja edastage need seejärel klassile Hindaja. Pange tähele, et mõne hüperparameetri vaikeväärtused on erinevate mudelite puhul erinevad. Suurte mudelite puhul on partii vaikimisi suurus väiksem ja train_only_top_layer hüperparameeter on seatud väärtusele True. Hüperparameeter Train_only_top_layer määrab, millised mudeli parameetrid peenhäälestusprotsessi käigus muutuvad. Kui train_only_top_layer is True, klassifitseerimiskihtide parameetrid muutuvad ja ülejäänud parameetrid jäävad peenhäälestusprotsessi ajal muutumatuks. Teisest küljest, kui train_only_top_layer is False, kõik mudeli parameetrid on peenhäälestatud. Vaadake järgmist koodi:

from sagemaker import hyperparameters
# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(model_id=model_id, model_version=model_version)

# [Optional] Override default hyperparameters with custom values
hyperparameters["epochs"] = "5"

Järgmine kood pakub treeningu vaikeandmestiku, mida majutatakse S3 ämbrites. Pakume tf_flowers andmestik vaikeandmestikuna mudelite peenhäälestamiseks. Andmekogum koosneb viit tüüpi lilledest. Andmekogum on alla laaditud aadressilt TensorFlow Vastavalt Apache 2.0 litsents.

# Sample training data is available in this bucket
training_data_bucket = f"jumpstart-cache-prod-{aws_region}"
training_data_prefix = "training-datasets/tf_flowers/"

training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}"

Lõpuks, et käivitada SageMakeri koolitustöö mudeli peenhäälestamiseks, helistage .fit klassi hindaja objektil treeningandmete kogumi S3 asukoha läbimisel:

# Launch a SageMaker Training job by passing s3 path of the training data
tf_ic_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Lisateabe saamiseks selle kohta, kuidas kasutada uut SageMaker TensorFlow kujutiste klassifitseerimisalgoritmi õppimise ülekandmiseks kohandatud andmekogumile, juurutada peenhäälestatud mudel, teha juurutatud mudelist järeldusi ja juurutada eelkoolitatud mudel ilma eelneva peenhäälestuseta. kohandatud andmestiku kohta vaadake järgmist märkmikku. Sissejuhatus SageMaker TensorFlow – piltide klassifikatsioon.

TensorFlow kujutiste klassifitseerimisalgoritmi sisend/väljundliides

Saate peenhäälestada kõiki loetletud eelkoolitatud mudeleid TensorFlow rummu mudelid mis tahes antud andmekogumile, mis sisaldab pilte, mis kuuluvad mis tahes arvu klassidesse. Eesmärk on minimeerida sisendandmete prognoosiviga. Peenhäälestusega tagastatud mudelit saab järelduste tegemiseks edasi kasutada. Järgmised juhised selle kohta, kuidas tuleks mudelisse sisestamiseks treeningandmeid vormindada.

  • Sisend – kataloog, kus on sama palju alamkatalooge kui on klasside arv. Igas alamkataloogis peaksid olema sellesse klassi kuuluvad pildid .jpg, .jpeg või .png vormingus.
  • Väljund – Peenhäälestatud mudel, mida saab kasutada järelduste tegemiseks või mida saab täiendava koolituse abil edasi õpetada. Peenhäälestatud mudelile lisatakse eel- ja järeltöötluse signatuur nii, et see võtab sisendiks toores .jpg-pildi ja tagastab klassi tõenäosused. Koos mudelitega salvestatakse ka fail, mis seostab klasside indeksid klassi siltidega.

Kui treeninguandmed sisaldavad pilte kahest klassist, peaks sisendkataloog välja nägema nagu järgmine näide: roses ja dandelion. S3 tee peaks välja nägema s3://bucket_name/input_directory/. Pange tähele lõppu / on vajalik. Kaustade nimed ja roses, dandelionja .jpg-failinimed võivad olla mis tahes. Sildi vastendamise fail, mis salvestatakse koos koolitatud mudeliga S3 ämbrisse, kaardistab kaustanimed roosid ja võilill klasside tõenäosuste loendis olevate indeksitega, mille mudel väljastab. Kaardistamine toimub kaustanimede tähestikulises järjestuses. Järgmises näites vastab indeks 0 mudeliväljundite loendis dandelion, ja indeks 1 vastab roses.

input_directory
    |--roses
        |--abc.jpg
        |--def.jpg
    |--dandelion
        |--ghi.jpg
        |--jkl.jpg

Järeldus TensorFlow kujutiste klassifitseerimisalgoritmiga

Loodud mudeleid saab majutada järelduste tegemiseks ja toetada kodeeritud .jpg, .jpeg ja .png pildivorminguid. application/x-image sisu tüüp. Sisendpildi suurust muudetakse automaatselt. Väljund sisaldab tõenäosusväärtusi, kõigi klasside klassisilte ja suurima tõenäosusega klassiindeksile vastavat prognoositavat silti, mis on kodeeritud JSON-vormingus. TensorFlow kujutise klassifikatsioonimudel töötleb ühe päringu kohta ühte pilti ja väljastab JSON-is ainult ühe rea. Järgmine on JSON-i vastuse näide:

accept: application/json;verbose

 {"probabilities": [prob_0, prob_1, prob_2, ...],
  "labels":        [label_0, label_1, label_2, ...],
  "predicted_label": predicted_label}

If accept on seatud väärtusele application/json, siis väljastab mudel ainult tõenäosused. Lisateavet koolituse ja järelduste kohta leiate näidismärkmikust Sissejuhatus SageMaker TensorFlow – piltide klassifikatsioon.

Kasutage SageMakeri sisseehitatud algoritme JumpStart kasutajaliidese kaudu

JumpStart kasutajaliidese kaudu saate mõne klõpsuga kasutada ka SageMaker TensorFlow kujutiste klassifikatsiooni ja mis tahes muid sisseehitatud algoritme. JumpStart on SageMakeri funktsioon, mis võimaldab graafilise liidese kaudu koolitada ja juurutada sisseehitatud algoritme ja eelkoolitatud mudeleid erinevatest ML-raamistikest ja mudelijaoturitest. See võimaldab teil juurutada ka täisväärtuslikke ML-lahendusi, mis ühendavad ML-mudelid ja mitmesugused muud AWS-teenused, et lahendada sihitud kasutusjuhtum. Kontrollige Käivitage teksti klassifitseerimine rakendusega Amazon SageMaker JumpStart, kasutades TensorFlow Hubi ja Hugging Face mudeleid et saada teada, kuidas kasutada JumpStarti algoritmi või eelkoolitatud mudelit mõne klõpsuga treenimiseks.

Järeldus

Selles postituses teatasime SageMaker TensorFlow piltide klassifitseerimise sisseehitatud algoritmi käivitamisest. Esitasime näidiskoodi selle kohta, kuidas seda algoritmi kasutades kohandatud andmekogumis õppimist üle kanda, kasutades TensorFlow Hubi eelkoolitatud mudelit. Lisateabe saamiseks vaadake dokumentatsioon ja näidismärkmik.


Autoritest

TensorFlow kujutiste klassifitseerimismudelite õppimise ülekandmine rakenduses Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.Dr Ashish Khetan on vanemrakendusteadlane Amazon SageMakeri sisseehitatud algoritmid ja aitab välja töötada masinõppe algoritme. Ta sai doktorikraadi Illinoisi Urbana-Champaigni ülikoolist. Ta on aktiivne masinõppe ja statistiliste järelduste uurija ning avaldanud palju artikleid NeurIPS, ICML, ICLR, JMLR, ACL ja EMNLP konverentsidel.

TensorFlow kujutiste klassifitseerimismudelite õppimise ülekandmine rakenduses Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.Dr Vivek Madan on rakendusteadlane Amazon SageMaker JumpStart meeskond. Ta sai doktorikraadi Illinoisi Urbana-Champaigni ülikoolist ja oli Georgia Techi järeldoktor. Ta on aktiivne masinõppe ja algoritmide kujundamise uurija ning avaldanud ettekandeid EMNLP, ICLR, COLT, FOCS ja SODA konverentsidel.

TensorFlow kujutiste klassifitseerimismudelite õppimise ülekandmine rakenduses Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.João Moura on AI/ML spetsialistilahenduste arhitekt ettevõttes Amazon Web Services. Ta keskendub peamiselt NLP kasutusjuhtudele ning aitab klientidel optimeerida süvaõppemudeli koolitust ja juurutamist. Samuti on ta aktiivne madala koodiga ML-lahenduste ja ML-le spetsialiseerunud riistvara pooldaja.

TensorFlow kujutiste klassifitseerimismudelite õppimise ülekandmine rakenduses Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.Raju Penmatcha on AWS-i AI/ML-lahenduste vanemarhitekt. Ta töötab masinõppe ja tehisintellektiga seotud projektide kallal haridus-, valitsus- ja mittetulunduslike klientidega, aidates neil luua lahendusi AWS-i abil. Kui kliente ei aita, meeldib talle reisida uutesse kohtadesse.

Ajatempel:

Veel alates AWS-i masinõpe