All Projects → jina-ai → finetuner

jina-ai / finetuner

Licence: Apache-2.0 License
Finetuning any DNN for better embedding on neural search tasks

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects
EJS
674 projects

Projects that are alternatives of or similar to finetuner

ProteinLM
Protein Language Model
Stars: ✭ 76 (-82.81%)
Mutual labels:  transfer-learning, pretrained-models
dashboard
Interactive UI for analyzing Jina logs, designing Flows and viewing Hub images
Stars: ✭ 105 (-76.24%)
Mutual labels:  neural-search, jina
backprop
Backprop makes it simple to use, finetune, and deploy state-of-the-art ML models.
Stars: ✭ 229 (-48.19%)
Mutual labels:  transfer-learning, fine-tuning
sparsezoo
Neural network model repository for highly sparse and sparse-quantized models with matching sparsification recipes
Stars: ✭ 264 (-40.27%)
Mutual labels:  transfer-learning, pretrained-models
WARP
Code for ACL'2021 paper WARP 🌀 Word-level Adversarial ReProgramming. Outperforming `GPT-3` on SuperGLUE Few-Shot text classification. https://aclanthology.org/2021.acl-long.381/
Stars: ✭ 66 (-85.07%)
Mutual labels:  pretrained-models, few-shot-learning
pytorch-siamese-triplet
One-Shot Learning with Triplet CNNs in Pytorch
Stars: ✭ 74 (-83.26%)
Mutual labels:  triplet-loss, siamese-network
image triplet loss
Image similarity using Triplet Loss
Stars: ✭ 76 (-82.81%)
Mutual labels:  triplet-loss, siamese-network
Skin Lesions Classification DCNNs
Transfer Learning with DCNNs (DenseNet, Inception V3, Inception-ResNet V2, VGG16) for skin lesions classification
Stars: ✭ 47 (-89.37%)
Mutual labels:  transfer-learning, fine-tuning
super-gradients
Easily train or fine-tune SOTA computer vision models with one open source training library
Stars: ✭ 429 (-2.94%)
Mutual labels:  transfer-learning, pretrained-models
LearningToCompare-Tensorflow
Tensorflow implementation for paper: Learning to Compare: Relation Network for Few-Shot Learning.
Stars: ✭ 17 (-96.15%)
Mutual labels:  metric-learning, few-shot-learning
one-shot-steel-surfaces
One-Shot Recognition of Manufacturing Defects in Steel Surfaces
Stars: ✭ 29 (-93.44%)
Mutual labels:  siamese-network, few-shot-learning
TorchBlocks
A PyTorch-based toolkit for natural language processing
Stars: ✭ 85 (-80.77%)
Mutual labels:  triplet-loss, siamese-network
visual-compatibility
Context-Aware Visual Compatibility Prediction (https://arxiv.org/abs/1902.03646)
Stars: ✭ 92 (-79.19%)
Mutual labels:  metric-learning, siamese-network
triplet-loss-pytorch
Highly efficient PyTorch version of the Semi-hard Triplet loss ⚡️
Stars: ✭ 79 (-82.13%)
Mutual labels:  metric-learning, triplet-loss
simple-cnaps
Source codes for "Improved Few-Shot Visual Classification" (CVPR 2020), "Enhancing Few-Shot Image Classification with Unlabelled Examples" (WACV 2022), and "Beyond Simple Meta-Learning: Multi-Purpose Models for Multi-Domain, Active and Continual Few-Shot Learning" (Neural Networks 2022 - in submission)
Stars: ✭ 88 (-80.09%)
Mutual labels:  metric-learning, few-shot-learning
MHCLN
Deep Metric and Hash Code Learning Network for Content Based Retrieval of Remote Sensing Images
Stars: ✭ 30 (-93.21%)
Mutual labels:  metric-learning, triplet-loss
Learning-To-Compare-For-Text
Learning To Compare For Text , Few shot learning in text classification
Stars: ✭ 38 (-91.4%)
Mutual labels:  pretrained-models, few-shot-learning
few shot dialogue generation
Dialogue Knowledge Transfer Networks (DiKTNet)
Stars: ✭ 24 (-94.57%)
Mutual labels:  transfer-learning, few-shot-learning
Signature-verification-using-deep-learning
Using SigComp'11 dataset for signature verification
Stars: ✭ 54 (-87.78%)
Mutual labels:  triplet-loss, siamese-network
FSL-Mate
FSL-Mate: A collection of resources for few-shot learning (FSL).
Stars: ✭ 1,346 (+204.52%)
Mutual labels:  paddlepaddle, few-shot-learning

Finetuner logo: Finetuner allows one to finetune any deep Neural Network for better embedding on search tasks. It accompanies Jina to deliver the last mile of performance-tuning for neural search applications.

Finetuning any deep neural network for better embedding on neural search tasks

Python 3.7 3.8 3.9 PyPI

Finetuner allows one to tune the weights of any deep neural network for better embeddings on search tasks. It accompanies Jina to deliver the last mile of performance for domain-specific neural search applications.

🎛 Designed for finetuning: a human-in-the-loop deep learning tool for leveling up your pretrained models in domain-specific neural search applications.

🔱 Powerful yet intuitive: all you need is finetuner.fit() - a one-liner that unlocks rich features such as siamese/triplet network, metric learning, self-supervised pretraining, layer pruning, weights freezing, dimensionality reduction.

⚛️ Framework-agnostic: promise an identical API & user experience on PyTorch, Tensorflow/Keras and PaddlePaddle deep learning backends.

🧈 DocArray integration: buttery smooth integration with DocArray, reducing the cost of context-switch between experiment and production.

How does it work

Python 3.7 3.8 3.9

Install

Requires Python 3.7+ and one of PyTorch(>=1.9) or Tensorflow(>=2.5) or PaddlePaddle installed on Linux/MacOS.

pip install finetuner

Finetuning ResNet50 on CelebA

  1. Download CelebA-small dataset (7.7MB) and decompress it to './img_align_celeba'. Full dataset can be found here.
  2. Finetuner accepts docarray DocumentArray, so we load CelebA image into this format using a generator:
    from docarray import DocumentArray
    
    # please change the file path to your data path
    data = DocumentArray.from_files('img_align_celeba/*.jpg')
    
    
    def preproc(doc):
        return (
            doc.load_uri_to_image_tensor(224, 224)
            .set_image_tensor_normalization()
            .set_image_tensor_channel_axis(-1, 0)
        )  # No need for normalization and changing channel axes line if you are using tf/keras
    
    
    data.apply(preproc)
  3. Load pretrained ResNet18 using PyTorch/Keras/Paddle:
    • PyTorch
      import torchvision
      resnet = torchvision.models.resnet50(pretrained=True)
    • Keras
      import tensorflow as tf
      resnet = tf.keras.applications.resnet50.ResNet50(weights='imagenet')
    • Paddle
      import paddle
      resnet = paddle.vision.models.resnet50(pretrained=True)
  4. Start the Finetuner:
    import finetuner as ft
    
    tuned_model = ft.fit(
        model=resnet,
        train_data=data,
        loss='TripletLoss',
        epochs=20,
        device='cuda',
        batch_size=128,
        to_embedding_model=True,
        input_size=(3, 224, 224), # for keras use (224, 224, 3)
        freeze=False,
    )

Support

Join Us

Finetuner is backed by Jina AI and licensed under Apache-2.0. We are actively hiring AI engineers, solution engineers to build the next neural search ecosystem in opensource.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].