using System; | |
using TorchSharp; | |
public class ClipEncoder : IDisposable | |
{ | |
private torch.jit.ScriptModule _model; | |
public torch.Device Device {get;} | |
public ClipEncoder(string modelPath, torch.Device device) | |
{ | |
_model = TorchSharp.torch.jit.load(modelPath); | |
Device = device; | |
_model.to(Device); | |
_model.eval(); | |
} | |
public torch.Tensor Forward(torch.Tensor tokenTensor) | |
{ | |
return (torch.Tensor)_model.forward(tokenTensor); | |
} | |
public void Dispose() | |
{ | |
_model.Dispose(); | |
_model = null; | |
} | |
} |