Image-to-Text
Transformers
Safetensors
molparser_vision_encoder_decoder
image-text-to-text
chemistry
custom_code
Instructions to use UniParser/MolParser-Mobile with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use UniParser/MolParser-Mobile with Transformers:
# Use a pipeline as a high-level helper # Warning: Pipeline type "image-to-text" is no longer supported in transformers v5. # You must load the model directly (see below) or downgrade to v4.x with: # 'pip install "transformers<5.0.0' from transformers import pipeline pipe = pipeline("image-to-text", model="UniParser/MolParser-Mobile", trust_remote_code=True)# Load model directly from transformers import AutoModelForImageTextToText model = AutoModelForImageTextToText.from_pretrained("UniParser/MolParser-Mobile", trust_remote_code=True, dtype="auto") - Notebooks
- Google Colab
- Kaggle
File size: 2,767 Bytes
c81207b | 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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | """Processor that combines MolParser Mobile image preprocessing and tokenizer."""
from __future__ import annotations
from pathlib import Path
from typing import Sequence
from .image_processing_molparser_mobile import MolParserImageProcessor
from .tokenization_molparser_mobile import MolParserTokenizer
class MolParserProcessor:
attributes = ["image_processor", "tokenizer"]
image_processor_class = "MolParserImageProcessor"
tokenizer_class = "MolParserTokenizer"
def __init__(
self,
image_processor: MolParserImageProcessor | None = None,
tokenizer: MolParserTokenizer | None = None,
):
self.image_processor = image_processor or MolParserImageProcessor()
self.tokenizer = tokenizer
@classmethod
def register_for_auto_class(cls, auto_class: str = "AutoProcessor"):
cls._auto_class = auto_class
@classmethod
def from_pretrained(cls, pretrained_model_name_or_path: str, **kwargs) -> "MolParserProcessor":
path = str(pretrained_model_name_or_path)
image_processor = MolParserImageProcessor.from_pretrained(path, **kwargs)
tokenizer = MolParserTokenizer.from_pretrained(path, **kwargs)
return cls(image_processor=image_processor, tokenizer=tokenizer)
def save_pretrained(self, save_directory: str, **kwargs):
Path(save_directory).mkdir(parents=True, exist_ok=True)
image_files = self.image_processor.save_pretrained(save_directory, **kwargs)
tokenizer_files = ()
if self.tokenizer is not None:
tokenizer_files = self.tokenizer.save_pretrained(save_directory, **kwargs)
return tuple(image_files) + tuple(tokenizer_files)
def __call__(
self,
images=None,
text: str | Sequence[str] | None = None,
return_tensors: str | None = None,
**kwargs,
):
encoded = {}
if images is not None:
encoded.update(self.image_processor(images=images, return_tensors=return_tensors, **kwargs))
if text is not None:
if self.tokenizer is None:
raise ValueError("MolParserProcessor was created without a tokenizer.")
encoded.update(self.tokenizer(text, return_tensors=return_tensors, **kwargs))
return encoded
def decode(self, *args, **kwargs):
if self.tokenizer is None:
raise ValueError("MolParserProcessor was created without a tokenizer.")
return self.tokenizer.decode(*args, **kwargs)
def batch_decode(self, *args, **kwargs):
if self.tokenizer is None:
raise ValueError("MolParserProcessor was created without a tokenizer.")
return self.tokenizer.batch_decode(*args, **kwargs)
__all__ = ["MolParserProcessor"]
|