{"id":27641255,"url":"https://github.com/measterpojo/prototype-based-learning-w-ssda-pseudo-labeling","last_synced_at":"2026-05-05T23:31:53.580Z","repository":{"id":289179467,"uuid":"970381234","full_name":"measterpojo/Prototype-based-learning-w-SSDA-pseudo-labeling","owner":"measterpojo","description":"This approach is not fully a Prototypical Network, because it goes beyond few-shot learning and integrates domain adaptation with semi-supervised techniques. Instead, it's a hybrid that combines prototype-based learning with domain adaptation and pseudo-labeling","archived":false,"fork":false,"pushed_at":"2025-04-21T23:58:04.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-22T00:28:52.143Z","etag":null,"topics":["aritificial-intelligence","computer-vision","deep-learning","prototype","psuedo-labels","python","pytorch","semi-supervised-learning"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/measterpojo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-21T23:44:22.000Z","updated_at":"2025-04-21T23:58:07.000Z","dependencies_parsed_at":"2025-04-22T00:38:58.310Z","dependency_job_id":null,"html_url":"https://github.com/measterpojo/Prototype-based-learning-w-SSDA-pseudo-labeling","commit_stats":null,"previous_names":["measterpojo/prototype-based-learning-w-ssda-pseudo-labeling"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/measterpojo%2FPrototype-based-learning-w-SSDA-pseudo-labeling","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/measterpojo%2FPrototype-based-learning-w-SSDA-pseudo-labeling/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/measterpojo%2FPrototype-based-learning-w-SSDA-pseudo-labeling/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/measterpojo%2FPrototype-based-learning-w-SSDA-pseudo-labeling/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/measterpojo","download_url":"https://codeload.github.com/measterpojo/Prototype-based-learning-w-SSDA-pseudo-labeling/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250535032,"owners_count":21446503,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aritificial-intelligence","computer-vision","deep-learning","prototype","psuedo-labels","python","pytorch","semi-supervised-learning"],"created_at":"2025-04-23T23:42:01.477Z","updated_at":"2026-05-05T23:31:53.529Z","avatar_url":"https://github.com/measterpojo.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# prototype-based-learning-w-SSDA-pseudo-labeling\nThis approach is not fully a Prototypical Network, because it goes beyond few-shot learning and integrates domain adaptation with semi-supervised techniques. Instead, it's a hybrid that combines prototype-based learning with domain adaptation and pseudo-labeling\n\n\nIntroduction\n\nIn semi-supervised domain adaptation (SSDA), prototypes can play a crucial role in aligning features across domains. A prototype is essentially a representative feature vector for each class, often computed as the mean of feature embeddings for samples belonging to that class. Here's how prototypes are used in SSDA:\n\nWhen to use prototypes?\n\nDomain Adaptation:\n\nPrototypes align features between source and target domains at the class level.\n\nThey reduce domain shift by ensuring features cluster around their respective prototypes.\n\nSemi-Supervised Learning:\n\nPrototypes assist in generating pseudo-labels for unlabeled data by assigning them to the nearest prototype.\n\nThey improve feature alignment and classification accuracy.\n\n\nTraining loop\n\nworkflow where you're computing prototypes for each class, calculating distances between embeddings and their corresponding prototypes, and then using a loss function (criterion) to measure how well these distances align with a target (in this case, zeros).\n\n\nEpoch\tSource Loss\tTarget Labeled Loss\tTarget Unlabeled Loss\tTotal Loss\n### Training Results\n\n### Training Results\n\n| Epoch | Source Loss | Target Labeled Loss | Target Unlabeled Loss | Total Loss |\n|-------|------------|---------------------|----------------------|------------|\n| 1     | 3.5728     | 3.5793              | 3.6018               | 10.7538    |\n| 2     | 3.5743     | 3.5719              | 3.5978               | 10.7440    |\n| 3     | 3.5714     | 3.5784              | 3.5938               | 10.7436    |\n| 4     | 3.5719     | 3.5587              | 3.5926               | 10.7232    |\n| 5     | 3.5673     | 3.5499              | 3.5860               | 10.7031    |\n| 6     | 3.5599     | 3.5534              | 3.5815               | 10.6948    |\n| 7     | 3.5603     | 3.5583              | 3.5917               | 10.7103    |\n| 8     | 3.5635     | 3.5471              | 3.5942               | 10.7048    |\n| 9     | 3.5521     | 3.5388              | 3.5911               | 10.6820    |\n| 10    | 3.5571     | 3.5559              | 3.5868               | 10.6998    |\n\n\nConsistent Loss Across Domains\n\nYour source loss remains stable, suggesting that your model has learned its labeled source domain well.\n\nTarget labeled loss is slightly decreasing, which is good—it means your model is learning to align the labeled target domain with the source.\n\nTarget unlabeled loss is also trending downward, but very slowly, meaning pseudo-labeling and prototype refinement are progressing but could be improved.\n\nTotal Loss Stabilization\n\nThe total loss remains around 10.70 after several epochs, showing that adaptation is happening but at a gradual rate.\n\nSince unsupervised loss (pseudo-labeling) is involved, adaptation might take longer than pure supervised learning.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeasterpojo%2Fprototype-based-learning-w-ssda-pseudo-labeling","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmeasterpojo%2Fprototype-based-learning-w-ssda-pseudo-labeling","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeasterpojo%2Fprototype-based-learning-w-ssda-pseudo-labeling/lists"}