mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-11-08 13:33:42 +08:00
22a8575199
Keep official openpilot ancestry and dependency licenses. Store resources directly in Git, remove LFS setup requirements, and leave the downloadable big model outside the source tree.
41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
#!/usr/bin/env python
|
|
import unittest
|
|
import numpy as np
|
|
from tinygrad import Tensor, dtypes
|
|
from tinygrad.engine.jit import TinyJit
|
|
from tinygrad.helpers import Context
|
|
from test.helpers import derandomize_model
|
|
|
|
from examples.llama import Transformer
|
|
|
|
def helper_test_jitted_correctness(gen, train, train_jit):
|
|
nojit = train(*gen()).numpy()
|
|
for _ in range(5): jit = train_jit(*gen()).numpy()
|
|
np.testing.assert_allclose(nojit, jit, rtol=1e-3, atol=1e-5)
|
|
|
|
class TestJittedModels(unittest.TestCase):
|
|
def test_jitted_tiny_llama(self):
|
|
self.enterContext(Context(DEFAULT_FLOAT=dtypes.float16))
|
|
|
|
args_tiny = {"dim": 1024, "hidden_dim": 1024, "n_heads": 8, "n_layers": 8, "norm_eps": 1e-05, "vocab_size": 1000}
|
|
model = Transformer(**args_tiny)
|
|
derandomize_model(model)
|
|
def test(t): return model(t, 0).realize()
|
|
|
|
@TinyJit
|
|
def test_jit(t): return model(t, 0).realize()
|
|
helper_test_jitted_correctness(lambda: (Tensor([[1,]]),), test, test_jit)
|
|
|
|
def test_jitted_stable_diffusion(self):
|
|
from examples.stable_diffusion import UNetModel, unet_params
|
|
model = UNetModel(**unet_params)
|
|
derandomize_model(model)
|
|
def test(t, t2): return model(t, 801, t2).realize()
|
|
|
|
@TinyJit
|
|
def test_jit(t, t2): return model(t, 801, t2).realize()
|
|
helper_test_jitted_correctness(lambda: (Tensor.randn(1, 4, 16, 16),Tensor.randn(1, 77, 768)), test, test_jit)
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|