From 4f71126cfbbcb1335a0621d1d66cfc898002ef7e Mon Sep 17 00:00:00 2001 From: Jeff Moe Date: Tue, 6 Feb 2024 12:29:23 -0700 Subject: [PATCH] most tinygrad examples --- .../tinygrad/train_efficientnet.py.txt | 2 +- .../_output/tinygrad/train_resnet.py.txt | 20 ++ .../_output/tinygrad/transformer.py.txt | 44 +++ .../_static/_output/tinygrad/vgg7.py.txt | 30 ++ .../_static/_output/tinygrad/vit.py.txt | 1 + .../_static/_output/tinygrad/vits.py.txt | 16 + .../_static/_output/tinygrad/whisper.py.txt | 100 ++++++ .../_static/_output/tinygrad/yolov3.py.txt | 10 + .../_output/tinygrad/yolov8-onnx.py.txt | 340 ++++++++++++++++++ .../_static/_output/tinygrad/yolov8.py.txt | 1 + docs/_source/locale/en/LC_MESSAGES/output.po | 42 ++- docs/_source/output.rst | 54 +++ 12 files changed, 654 insertions(+), 6 deletions(-) create mode 100644 docs/_source/_static/_output/tinygrad/train_resnet.py.txt create mode 100644 docs/_source/_static/_output/tinygrad/transformer.py.txt create mode 100644 docs/_source/_static/_output/tinygrad/vgg7.py.txt create mode 100644 docs/_source/_static/_output/tinygrad/vit.py.txt create mode 100644 docs/_source/_static/_output/tinygrad/vits.py.txt create mode 100644 docs/_source/_static/_output/tinygrad/whisper.py.txt create mode 100644 docs/_source/_static/_output/tinygrad/yolov3.py.txt create mode 100644 docs/_source/_static/_output/tinygrad/yolov8-onnx.py.txt create mode 100644 docs/_source/_static/_output/tinygrad/yolov8.py.txt diff --git a/docs/_source/_static/_output/tinygrad/train_efficientnet.py.txt b/docs/_source/_static/_output/tinygrad/train_efficientnet.py.txt index 60bdb1f..eebc368 100644 --- a/docs/_source/_static/_output/tinygrad/train_efficientnet.py.txt +++ b/docs/_source/_static/_output/tinygrad/train_efficientnet.py.txt @@ -1,3 +1,3 @@ parameter count 296 training with batch size 16 for 2048 steps - 0%| | 0/2048 [00:00 + net_g = load_model(text_mapper.symbols, hps, model_config) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/jebba/devel/tinygrad/tinygrad/examples/vits.py", line 535, in load_model + _ = load_checkpoint(fetch(model[1]), net_g, None) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/jebba/devel/tinygrad/tinygrad/examples/vits.py", line 540, in load_checkpoint + checkpoint_dict = torch_load(checkpoint_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/jebba/devel/tinygrad/tinygrad/tinygrad/nn/state.py", line 145, in torch_load + _, _, _, rwd, _, ids, base_offset = pkl.load(), pkl.load(), pkl.load(), f.tell(), pkl.load(), pkl.load(), f.tell() + ^^^^^^^^^^ +_pickle.UnpicklingError: invalid load key, '<'. diff --git a/docs/_source/_static/_output/tinygrad/whisper.py.txt b/docs/_source/_static/_output/tinygrad/whisper.py.txt new file mode 100644 index 0000000..99ef2a4 --- /dev/null +++ b/docs/_source/_static/_output/tinygrad/whisper.py.txt @@ -0,0 +1,100 @@ + 0%| | 0/168 [00:00 + waveform = q.get() + ^^^^^^^ + File "/usr/lib/python3.11/multiprocessing/queues.py", line 103, in get + res = self._recv_bytes() + ^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.11/multiprocessing/connection.py", line 215, in recv_bytes + buf = self._recv_bytes(maxlength) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.11/multiprocessing/connection.py", line 413, in _recv_bytes + buf = self._recv(4) + ^^^^^^^^^^^^^ + File "/usr/lib/python3.11/multiprocessing/connection.py", line 378, in _recv + chunk = read(handle, remaining) + ^^^^^^^^^^^^^^^^^^^^^^^ +KeyboardInterrupt diff --git a/docs/_source/_static/_output/tinygrad/yolov3.py.txt b/docs/_source/_static/_output/tinygrad/yolov3.py.txt new file mode 100644 index 0000000..639dd0d --- /dev/null +++ b/docs/_source/_static/_output/tinygrad/yolov3.py.txt @@ -0,0 +1,10 @@ +Modules length: 107 +Loading weights file (237MB). This might take a while… + https://pjreddie.com/media/files/yolov3.weights: 0%| | 0.00/248M [00:00, None)> on GPU with grad None>} +10: op Split shape [(1, 32, 120, 160), (2,)] opt {'axis': 1} +11: op Conv shape [(1, 16, 120, 160), (16, 16, 3, 3), (16,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +12: op Sigmoid shape [(1, 16, 120, 160)] opt {} +13: op Mul shape [(1, 16, 120, 160), (1, 16, 120, 160)] opt {} +14: op Conv shape [(1, 16, 120, 160), (16, 16, 3, 3), (16,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +15: op Sigmoid shape [(1, 16, 120, 160)] opt {} +16: op Mul shape [(1, 16, 120, 160), (1, 16, 120, 160)] opt {} +17: op Add shape [(1, 16, 120, 160), (1, 16, 120, 160)] opt {} +18: op Concat shape [(1, 16, 120, 160), (1, 16, 120, 160), (1, 16, 120, 160)] opt {'axis': 1} +19: op Conv shape [(1, 48, 120, 160), (32, 48, 1, 1), (32,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +20: op Sigmoid shape [(1, 32, 120, 160)] opt {} +21: op Mul shape [(1, 32, 120, 160), (1, 32, 120, 160)] opt {} +22: op Conv shape [(1, 32, 120, 160), (64, 32, 3, 3), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (2, 2)} +23: op Sigmoid shape [(1, 64, 60, 80)] opt {} +24: op Mul shape [(1, 64, 60, 80), (1, 64, 60, 80)] opt {} +25: op Conv shape [(1, 64, 60, 80), (64, 64, 1, 1), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +26: op Sigmoid shape [(1, 64, 60, 80)] opt {} +27: op Mul shape [(1, 64, 60, 80), (1, 64, 60, 80)] opt {} +28: op Constant shape [] opt {'value': , None)> on GPU with grad None>} +29: op Split shape [(1, 64, 60, 80), (2,)] opt {'axis': 1} +30: op Conv shape [(1, 32, 60, 80), (32, 32, 3, 3), (32,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +31: op Sigmoid shape [(1, 32, 60, 80)] opt {} +32: op Mul shape [(1, 32, 60, 80), (1, 32, 60, 80)] opt {} +33: op Conv shape [(1, 32, 60, 80), (32, 32, 3, 3), (32,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +34: op Sigmoid shape [(1, 32, 60, 80)] opt {} +35: op Mul shape [(1, 32, 60, 80), (1, 32, 60, 80)] opt {} +36: op Add shape [(1, 32, 60, 80), (1, 32, 60, 80)] opt {} +37: op Conv shape [(1, 32, 60, 80), (32, 32, 3, 3), (32,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +38: op Sigmoid shape [(1, 32, 60, 80)] opt {} +39: op Mul shape [(1, 32, 60, 80), (1, 32, 60, 80)] opt {} +40: op Conv shape [(1, 32, 60, 80), (32, 32, 3, 3), (32,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +41: op Sigmoid shape [(1, 32, 60, 80)] opt {} +42: op Mul shape [(1, 32, 60, 80), (1, 32, 60, 80)] opt {} +43: op Add shape [(1, 32, 60, 80), (1, 32, 60, 80)] opt {} +44: op Concat shape [(1, 32, 60, 80), (1, 32, 60, 80), (1, 32, 60, 80), (1, 32, 60, 80)] opt {'axis': 1} +45: op Conv shape [(1, 128, 60, 80), (64, 128, 1, 1), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +46: op Sigmoid shape [(1, 64, 60, 80)] opt {} +47: op Mul shape [(1, 64, 60, 80), (1, 64, 60, 80)] opt {} +48: op Conv shape [(1, 64, 60, 80), (128, 64, 3, 3), (128,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (2, 2)} +49: op Sigmoid shape [(1, 128, 30, 40)] opt {} +50: op Mul shape [(1, 128, 30, 40), (1, 128, 30, 40)] opt {} +51: op Conv shape [(1, 128, 30, 40), (128, 128, 1, 1), (128,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +52: op Sigmoid shape [(1, 128, 30, 40)] opt {} +53: op Mul shape [(1, 128, 30, 40), (1, 128, 30, 40)] opt {} +54: op Constant shape [] opt {'value': , None)> on GPU with grad None>} +55: op Split shape [(1, 128, 30, 40), (2,)] opt {'axis': 1} +56: op Conv shape [(1, 64, 30, 40), (64, 64, 3, 3), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +57: op Sigmoid shape [(1, 64, 30, 40)] opt {} +58: op Mul shape [(1, 64, 30, 40), (1, 64, 30, 40)] opt {} +59: op Conv shape [(1, 64, 30, 40), (64, 64, 3, 3), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +60: op Sigmoid shape [(1, 64, 30, 40)] opt {} +61: op Mul shape [(1, 64, 30, 40), (1, 64, 30, 40)] opt {} +62: op Add shape [(1, 64, 30, 40), (1, 64, 30, 40)] opt {} +63: op Conv shape [(1, 64, 30, 40), (64, 64, 3, 3), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +64: op Sigmoid shape [(1, 64, 30, 40)] opt {} +65: op Mul shape [(1, 64, 30, 40), (1, 64, 30, 40)] opt {} +66: op Conv shape [(1, 64, 30, 40), (64, 64, 3, 3), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +67: op Sigmoid shape [(1, 64, 30, 40)] opt {} +68: op Mul shape [(1, 64, 30, 40), (1, 64, 30, 40)] opt {} +69: op Add shape [(1, 64, 30, 40), (1, 64, 30, 40)] opt {} +70: op Concat shape [(1, 64, 30, 40), (1, 64, 30, 40), (1, 64, 30, 40), (1, 64, 30, 40)] opt {'axis': 1} +71: op Conv shape [(1, 256, 30, 40), (128, 256, 1, 1), (128,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +72: op Sigmoid shape [(1, 128, 30, 40)] opt {} +73: op Mul shape [(1, 128, 30, 40), (1, 128, 30, 40)] opt {} +74: op Conv shape [(1, 128, 30, 40), (256, 128, 3, 3), (256,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (2, 2)} +75: op Sigmoid shape [(1, 256, 15, 20)] opt {} +76: op Mul shape [(1, 256, 15, 20), (1, 256, 15, 20)] opt {} +77: op Conv shape [(1, 256, 15, 20), (256, 256, 1, 1), (256,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +78: op Sigmoid shape [(1, 256, 15, 20)] opt {} +79: op Mul shape [(1, 256, 15, 20), (1, 256, 15, 20)] opt {} +80: op Constant shape [] opt {'value': , None)> on GPU with grad None>} +81: op Split shape [(1, 256, 15, 20), (2,)] opt {'axis': 1} +82: op Conv shape [(1, 128, 15, 20), (128, 128, 3, 3), (128,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +83: op Sigmoid shape [(1, 128, 15, 20)] opt {} +84: op Mul shape [(1, 128, 15, 20), (1, 128, 15, 20)] opt {} +85: op Conv shape [(1, 128, 15, 20), (128, 128, 3, 3), (128,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +86: op Sigmoid shape [(1, 128, 15, 20)] opt {} +87: op Mul shape [(1, 128, 15, 20), (1, 128, 15, 20)] opt {} +88: op Add shape [(1, 128, 15, 20), (1, 128, 15, 20)] opt {} +89: op Concat shape [(1, 128, 15, 20), (1, 128, 15, 20), (1, 128, 15, 20)] opt {'axis': 1} +90: op Conv shape [(1, 384, 15, 20), (256, 384, 1, 1), (256,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +91: op Sigmoid shape [(1, 256, 15, 20)] opt {} +92: op Mul shape [(1, 256, 15, 20), (1, 256, 15, 20)] opt {} +93: op Conv shape [(1, 256, 15, 20), (128, 256, 1, 1), (128,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +94: op Sigmoid shape [(1, 128, 15, 20)] opt {} +95: op Mul shape [(1, 128, 15, 20), (1, 128, 15, 20)] opt {} +96: op MaxPool shape [(1, 128, 15, 20)] opt {'ceil_mode': 0, 'dilations': (1, 1), 'kernel_shape': (5, 5), 'pads': (2, 2, 2, 2), 'strides': (1, 1)} +97: op MaxPool shape [(1, 128, 15, 20)] opt {'ceil_mode': 0, 'dilations': (1, 1), 'kernel_shape': (5, 5), 'pads': (2, 2, 2, 2), 'strides': (1, 1)} +98: op MaxPool shape [(1, 128, 15, 20)] opt {'ceil_mode': 0, 'dilations': (1, 1), 'kernel_shape': (5, 5), 'pads': (2, 2, 2, 2), 'strides': (1, 1)} +99: op Concat shape [(1, 128, 15, 20), (1, 128, 15, 20), (1, 128, 15, 20), (1, 128, 15, 20)] opt {'axis': 1} +100: op Conv shape [(1, 512, 15, 20), (256, 512, 1, 1), (256,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +101: op Sigmoid shape [(1, 256, 15, 20)] opt {} +102: op Mul shape [(1, 256, 15, 20), (1, 256, 15, 20)] opt {} +103: op Constant shape [] opt {'value': , None)> on GPU with grad None>} +104: op Resize shape [(1, 256, 15, 20), None, (4,)] opt {'coordinate_transformation_mode': 'asymmetric', 'cubic_coeff_a': -0.75, 'mode': 'nearest', 'nearest_mode': 'floor'} +105: op Concat shape [(1, 256, 30, 40), (1, 128, 30, 40)] opt {'axis': 1} +106: op Conv shape [(1, 384, 30, 40), (128, 384, 1, 1), (128,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +107: op Sigmoid shape [(1, 128, 30, 40)] opt {} +108: op Mul shape [(1, 128, 30, 40), (1, 128, 30, 40)] opt {} +109: op Split shape [(1, 128, 30, 40), (2,)] opt {'axis': 1} +110: op Conv shape [(1, 64, 30, 40), (64, 64, 3, 3), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +111: op Sigmoid shape [(1, 64, 30, 40)] opt {} +112: op Mul shape [(1, 64, 30, 40), (1, 64, 30, 40)] opt {} +113: op Conv shape [(1, 64, 30, 40), (64, 64, 3, 3), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +114: op Sigmoid shape [(1, 64, 30, 40)] opt {} +115: op Mul shape [(1, 64, 30, 40), (1, 64, 30, 40)] opt {} +116: op Concat shape [(1, 64, 30, 40), (1, 64, 30, 40), (1, 64, 30, 40)] opt {'axis': 1} +117: op Conv shape [(1, 192, 30, 40), (128, 192, 1, 1), (128,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +118: op Sigmoid shape [(1, 128, 30, 40)] opt {} +119: op Mul shape [(1, 128, 30, 40), (1, 128, 30, 40)] opt {} +120: op Constant shape [] opt {'value': , None)> on GPU with grad None>} +121: op Resize shape [(1, 128, 30, 40), None, (4,)] opt {'coordinate_transformation_mode': 'asymmetric', 'cubic_coeff_a': -0.75, 'mode': 'nearest', 'nearest_mode': 'floor'} +122: op Concat shape [(1, 128, 60, 80), (1, 64, 60, 80)] opt {'axis': 1} +123: op Conv shape [(1, 192, 60, 80), (64, 192, 1, 1), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +124: op Sigmoid shape [(1, 64, 60, 80)] opt {} +125: op Mul shape [(1, 64, 60, 80), (1, 64, 60, 80)] opt {} +126: op Split shape [(1, 64, 60, 80), (2,)] opt {'axis': 1} +127: op Conv shape [(1, 32, 60, 80), (32, 32, 3, 3), (32,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +128: op Sigmoid shape [(1, 32, 60, 80)] opt {} +129: op Mul shape [(1, 32, 60, 80), (1, 32, 60, 80)] opt {} +130: op Conv shape [(1, 32, 60, 80), (32, 32, 3, 3), (32,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +131: op Sigmoid shape [(1, 32, 60, 80)] opt {} +132: op Mul shape [(1, 32, 60, 80), (1, 32, 60, 80)] opt {} +133: op Concat shape [(1, 32, 60, 80), (1, 32, 60, 80), (1, 32, 60, 80)] opt {'axis': 1} +134: op Conv shape [(1, 96, 60, 80), (64, 96, 1, 1), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +135: op Sigmoid shape [(1, 64, 60, 80)] opt {} +136: op Mul shape [(1, 64, 60, 80), (1, 64, 60, 80)] opt {} +137: op Conv shape [(1, 64, 60, 80), (64, 64, 3, 3), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (2, 2)} +138: op Sigmoid shape [(1, 64, 30, 40)] opt {} +139: op Mul shape [(1, 64, 30, 40), (1, 64, 30, 40)] opt {} +140: op Concat shape [(1, 64, 30, 40), (1, 128, 30, 40)] opt {'axis': 1} +141: op Conv shape [(1, 192, 30, 40), (128, 192, 1, 1), (128,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +142: op Sigmoid shape [(1, 128, 30, 40)] opt {} +143: op Mul shape [(1, 128, 30, 40), (1, 128, 30, 40)] opt {} +144: op Split shape [(1, 128, 30, 40), (2,)] opt {'axis': 1} +145: op Conv shape [(1, 64, 30, 40), (64, 64, 3, 3), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +146: op Sigmoid shape [(1, 64, 30, 40)] opt {} +147: op Mul shape [(1, 64, 30, 40), (1, 64, 30, 40)] opt {} +148: op Conv shape [(1, 64, 30, 40), (64, 64, 3, 3), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +149: op Sigmoid shape [(1, 64, 30, 40)] opt {} +150: op Mul shape [(1, 64, 30, 40), (1, 64, 30, 40)] opt {} +151: op Concat shape [(1, 64, 30, 40), (1, 64, 30, 40), (1, 64, 30, 40)] opt {'axis': 1} +152: op Conv shape [(1, 192, 30, 40), (128, 192, 1, 1), (128,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +153: op Sigmoid shape [(1, 128, 30, 40)] opt {} +154: op Mul shape [(1, 128, 30, 40), (1, 128, 30, 40)] opt {} +155: op Conv shape [(1, 128, 30, 40), (128, 128, 3, 3), (128,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (2, 2)} +156: op Sigmoid shape [(1, 128, 15, 20)] opt {} +157: op Mul shape [(1, 128, 15, 20), (1, 128, 15, 20)] opt {} +158: op Concat shape [(1, 128, 15, 20), (1, 256, 15, 20)] opt {'axis': 1} +159: op Conv shape [(1, 384, 15, 20), (256, 384, 1, 1), (256,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +160: op Sigmoid shape [(1, 256, 15, 20)] opt {} +161: op Mul shape [(1, 256, 15, 20), (1, 256, 15, 20)] opt {} +162: op Split shape [(1, 256, 15, 20), (2,)] opt {'axis': 1} +163: op Conv shape [(1, 128, 15, 20), (128, 128, 3, 3), (128,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +164: op Sigmoid shape [(1, 128, 15, 20)] opt {} +165: op Mul shape [(1, 128, 15, 20), (1, 128, 15, 20)] opt {} +166: op Conv shape [(1, 128, 15, 20), (128, 128, 3, 3), (128,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +167: op Sigmoid shape [(1, 128, 15, 20)] opt {} +168: op Mul shape [(1, 128, 15, 20), (1, 128, 15, 20)] opt {} +169: op Concat shape [(1, 128, 15, 20), (1, 128, 15, 20), (1, 128, 15, 20)] opt {'axis': 1} +170: op Conv shape [(1, 384, 15, 20), (256, 384, 1, 1), (256,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +171: op Sigmoid shape [(1, 256, 15, 20)] opt {} +172: op Mul shape [(1, 256, 15, 20), (1, 256, 15, 20)] opt {} +173: op Conv shape [(1, 64, 60, 80), (64, 64, 3, 3), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +174: op Sigmoid shape [(1, 64, 60, 80)] opt {} +175: op Mul shape [(1, 64, 60, 80), (1, 64, 60, 80)] opt {} +176: op ConvTranspose shape [(1, 64, 60, 80), (64, 64, 2, 2), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (2, 2), 'pads': (0, 0, 0, 0), 'strides': (2, 2)} +177: op Conv shape [(1, 64, 120, 160), (64, 64, 3, 3), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +178: op Sigmoid shape [(1, 64, 120, 160)] opt {} +179: op Mul shape [(1, 64, 120, 160), (1, 64, 120, 160)] opt {} +180: op Conv shape [(1, 64, 120, 160), (32, 64, 1, 1), (32,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +181: op Sigmoid shape [(1, 32, 120, 160)] opt {} +182: op Mul shape [(1, 32, 120, 160), (1, 32, 120, 160)] opt {} +183: op Conv shape [(1, 64, 60, 80), (32, 64, 3, 3), (32,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +184: op Sigmoid shape [(1, 32, 60, 80)] opt {} +185: op Mul shape [(1, 32, 60, 80), (1, 32, 60, 80)] opt {} +186: op Conv shape [(1, 32, 60, 80), (32, 32, 3, 3), (32,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +187: op Sigmoid shape [(1, 32, 60, 80)] opt {} +188: op Mul shape [(1, 32, 60, 80), (1, 32, 60, 80)] opt {} +189: op Conv shape [(1, 32, 60, 80), (32, 32, 1, 1), (32,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +190: op Constant shape [] opt {'value': , None)> on GPU with grad None>} +191: op Constant shape [] opt {'value': , None)> on GPU with grad None>} +192: op Constant shape [] opt {'value': , None)> on GPU with grad None>} +193: op Reshape shape [(1, 32, 60, 80), (3,)] opt {'allowzero': 0} +194: op Conv shape [(1, 128, 30, 40), (32, 128, 3, 3), (32,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +195: op Sigmoid shape [(1, 32, 30, 40)] opt {} +196: op Mul shape [(1, 32, 30, 40), (1, 32, 30, 40)] opt {} +197: op Conv shape [(1, 32, 30, 40), (32, 32, 3, 3), (32,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +198: op Sigmoid shape [(1, 32, 30, 40)] opt {} +199: op Mul shape [(1, 32, 30, 40), (1, 32, 30, 40)] opt {} +200: op Conv shape [(1, 32, 30, 40), (32, 32, 1, 1), (32,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +201: op Reshape shape [(1, 32, 30, 40), (3,)] opt {'allowzero': 0} +202: op Conv shape [(1, 256, 15, 20), (32, 256, 3, 3), (32,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +203: op Sigmoid shape [(1, 32, 15, 20)] opt {} +204: op Mul shape [(1, 32, 15, 20), (1, 32, 15, 20)] opt {} +205: op Conv shape [(1, 32, 15, 20), (32, 32, 3, 3), (32,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +206: op Sigmoid shape [(1, 32, 15, 20)] opt {} +207: op Mul shape [(1, 32, 15, 20), (1, 32, 15, 20)] opt {} +208: op Conv shape [(1, 32, 15, 20), (32, 32, 1, 1), (32,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +209: op Reshape shape [(1, 32, 15, 20), (3,)] opt {'allowzero': 0} +210: op Concat shape [(1, 32, 4800), (1, 32, 1200), (1, 32, 300)] opt {'axis': 2} +211: op Conv shape [(1, 64, 60, 80), (64, 64, 3, 3), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +212: op Sigmoid shape [(1, 64, 60, 80)] opt {} +213: op Mul shape [(1, 64, 60, 80), (1, 64, 60, 80)] opt {} +214: op Conv shape [(1, 64, 60, 80), (64, 64, 3, 3), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +215: op Sigmoid shape [(1, 64, 60, 80)] opt {} +216: op Mul shape [(1, 64, 60, 80), (1, 64, 60, 80)] opt {} +217: op Conv shape [(1, 64, 60, 80), (64, 64, 1, 1), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +218: op Conv shape [(1, 64, 60, 80), (80, 64, 3, 3), (80,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +219: op Sigmoid shape [(1, 80, 60, 80)] opt {} +220: op Mul shape [(1, 80, 60, 80), (1, 80, 60, 80)] opt {} +221: op Conv shape [(1, 80, 60, 80), (80, 80, 3, 3), (80,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +222: op Sigmoid shape [(1, 80, 60, 80)] opt {} +223: op Mul shape [(1, 80, 60, 80), (1, 80, 60, 80)] opt {} +224: op Conv shape [(1, 80, 60, 80), (80, 80, 1, 1), (80,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +225: op Concat shape [(1, 64, 60, 80), (1, 80, 60, 80)] opt {'axis': 1} +226: op Conv shape [(1, 128, 30, 40), (64, 128, 3, 3), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +227: op Sigmoid shape [(1, 64, 30, 40)] opt {} +228: op Mul shape [(1, 64, 30, 40), (1, 64, 30, 40)] opt {} +229: op Conv shape [(1, 64, 30, 40), (64, 64, 3, 3), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +230: op Sigmoid shape [(1, 64, 30, 40)] opt {} +231: op Mul shape [(1, 64, 30, 40), (1, 64, 30, 40)] opt {} +232: op Conv shape [(1, 64, 30, 40), (64, 64, 1, 1), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +233: op Conv shape [(1, 128, 30, 40), (80, 128, 3, 3), (80,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +234: op Sigmoid shape [(1, 80, 30, 40)] opt {} +235: op Mul shape [(1, 80, 30, 40), (1, 80, 30, 40)] opt {} +236: op Conv shape [(1, 80, 30, 40), (80, 80, 3, 3), (80,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +237: op Sigmoid shape [(1, 80, 30, 40)] opt {} +238: op Mul shape [(1, 80, 30, 40), (1, 80, 30, 40)] opt {} +239: op Conv shape [(1, 80, 30, 40), (80, 80, 1, 1), (80,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +240: op Concat shape [(1, 64, 30, 40), (1, 80, 30, 40)] opt {'axis': 1} +241: op Conv shape [(1, 256, 15, 20), (64, 256, 3, 3), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +242: op Sigmoid shape [(1, 64, 15, 20)] opt {} +243: op Mul shape [(1, 64, 15, 20), (1, 64, 15, 20)] opt {} +244: op Conv shape [(1, 64, 15, 20), (64, 64, 3, 3), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +245: op Sigmoid shape [(1, 64, 15, 20)] opt {} +246: op Mul shape [(1, 64, 15, 20), (1, 64, 15, 20)] opt {} +247: op Conv shape [(1, 64, 15, 20), (64, 64, 1, 1), (64,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +248: op Conv shape [(1, 256, 15, 20), (80, 256, 3, 3), (80,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +249: op Sigmoid shape [(1, 80, 15, 20)] opt {} +250: op Mul shape [(1, 80, 15, 20), (1, 80, 15, 20)] opt {} +251: op Conv shape [(1, 80, 15, 20), (80, 80, 3, 3), (80,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (3, 3), 'pads': (1, 1, 1, 1), 'strides': (1, 1)} +252: op Sigmoid shape [(1, 80, 15, 20)] opt {} +253: op Mul shape [(1, 80, 15, 20), (1, 80, 15, 20)] opt {} +254: op Conv shape [(1, 80, 15, 20), (80, 80, 1, 1), (80,)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +255: op Concat shape [(1, 64, 15, 20), (1, 80, 15, 20)] opt {'axis': 1} +256: op Constant shape [] opt {'value': , None)> on GPU with grad None>} +257: op Constant shape [] opt {'value': , None)> on GPU with grad None>} +258: op Constant shape [] opt {'value': , None)> on GPU with grad None>} +259: op Reshape shape [(1, 144, 60, 80), (3,)] opt {'allowzero': 0} +260: op Reshape shape [(1, 144, 30, 40), (3,)] opt {'allowzero': 0} +261: op Reshape shape [(1, 144, 15, 20), (3,)] opt {'allowzero': 0} +262: op Concat shape [(1, 144, 4800), (1, 144, 1200), (1, 144, 300)] opt {'axis': 2} +263: op Constant shape [] opt {'value': , None)> on GPU with grad None>} +264: op Split shape [(1, 144, 6300), (2,)] opt {'axis': 1} +265: op Constant shape [] opt {'value': , None)> on GPU with grad None>} +266: op Reshape shape [(1, 64, 6300), (4,)] opt {'allowzero': 0} +267: op Transpose shape [(1, 4, 16, 6300)] opt {'perm': (0, 2, 1, 3)} +268: op Softmax shape [(1, 16, 4, 6300)] opt {'axis': 1} +269: op Conv shape [(1, 16, 4, 6300), (1, 16, 1, 1)] opt {'dilations': (1, 1), 'group': 1, 'kernel_shape': (1, 1), 'pads': (0, 0, 0, 0), 'strides': (1, 1)} +270: op Constant shape [] opt {'value': , None)> on GPU with grad None>} +271: op Reshape shape [(1, 1, 4, 6300), (3,)] opt {'allowzero': 0} +272: op Shape shape [(1, 4, 6300)] opt {} +273: op Constant shape [] opt {'value': , None)> on GPU with grad None>} +274: op Gather shape [(3,), (1,)] opt {'axis': 0} +275: op Constant shape [] opt {'value': , None)> on GPU with grad None>} +276: op Constant shape [] opt {'value': , None)> on GPU with grad None>} +277: op Add shape [(1,), (1,)] opt {} +278: op Constant shape [] opt {'value': , None)> on GPU with grad None>} +279: op Div shape [(1,), (1,)] opt {} +280: op Constant shape [] opt {'value': , None)> on GPU with grad None>} +281: op Mul shape [(1,), (1,)] opt {} +282: op Slice shape [(1, 4, 6300), (1,), (1,), (1,)] opt {} +283: op Constant shape [] opt {'value': , None)> on GPU with grad None>} +284: op Mul shape [(1,), (1,)] opt {} +285: op Slice shape [(1, 4, 6300), (1,), (1,), (1,)] opt {} +286: op Constant shape [] opt {'value': , None)> on GPU with grad None>} +287: op Sub shape [(1, 2, 6300), (1, 3, 6300)] opt {} +Traceback (most recent call last): + File "/home/jebba/devel/tinygrad/tinygrad/examples/yolov8-onnx.py", line 18, in + run_onnx({"images": Tensor.zeros(1,3,480,640)}, debug=True) + File "/home/jebba/devel/tinygrad/tinygrad/extra/onnx.py", line 211, in run_onnx + ret = real_fxn(*inp, **opt) + ^^^^^^^^^^^^^^^^^^^^^ + File "/home/jebba/devel/tinygrad/tinygrad/extra/onnx_ops.py", line 18, in Sub + def Sub(x: Union[Tensor, Any], other: Tensor): return x - other # some test has input as int + ~~^~~~~~~ + File "/home/jebba/devel/tinygrad/tinygrad/tinygrad/tensor.py", line 858, in __sub__ + def __sub__(self, x) -> Tensor: return self.sub(x) + ^^^^^^^^^^^ + File "/home/jebba/devel/tinygrad/tinygrad/tinygrad/tensor.py", line 812, in sub + return mlops.Sub.apply(*self._broadcasted(x, reverse)) if x.__class__ is Tensor or x else (-self if reverse else self) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/jebba/devel/tinygrad/tinygrad/tinygrad/tensor.py", line 800, in _broadcasted + return x.expand(broadcasted_shape), y.expand(broadcasted_shape) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/jebba/devel/tinygrad/tinygrad/tinygrad/tensor.py", line 309, in expand + return mlops.Expand.apply(self, shape=new_shape) if new_shape != self.shape else self + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/jebba/devel/tinygrad/tinygrad/tinygrad/tensor.py", line 34, in apply + ret.lazydata, ret.requires_grad, ret.grad = ctx.forward(*[t.lazydata for t in x], **kwargs), ctx.requires_grad, None + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/jebba/devel/tinygrad/tinygrad/tinygrad/mlops.py", line 168, in forward + return x.expand(shape) + ^^^^^^^^^^^^^^^ + File "/home/jebba/devel/tinygrad/tinygrad/tinygrad/lazy.py", line 147, in expand + def expand(self, arg:Tuple[sint, ...]): return self._view(self.st.expand(arg)) + ^^^^^^^^^^^^^^^^^^^ + File "/home/jebba/devel/tinygrad/tinygrad/tinygrad/shape/shapetracker.py", line 180, in expand + def expand(self, new_shape: Tuple[sint, ...]) -> ShapeTracker: return ShapeTracker(self.views[0:-1] + (self.views[-1].expand(new_shape), )) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/jebba/devel/tinygrad/tinygrad/tinygrad/shape/view.py", line 156, in expand + assert all((s == x or (s == 1 and st == 0)) for s,x,st in zip(self.shape, new_shape, self.strides)), f"can't expand {self.shape} into {new_shape}" +AssertionError: can't expand (1, 2, 6300) into (1, 3, 6300) diff --git a/docs/_source/_static/_output/tinygrad/yolov8.py.txt b/docs/_source/_static/_output/tinygrad/yolov8.py.txt new file mode 100644 index 0000000..2a3f47d --- /dev/null +++ b/docs/_source/_static/_output/tinygrad/yolov8.py.txt @@ -0,0 +1 @@ +Error: Image URL or path not provided. diff --git a/docs/_source/locale/en/LC_MESSAGES/output.po b/docs/_source/locale/en/LC_MESSAGES/output.po index a0c1a92..740be64 100644 --- a/docs/_source/locale/en/LC_MESSAGES/output.po +++ b/docs/_source/locale/en/LC_MESSAGES/output.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: tinyrocs 0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-02-06 11:49-0700\n" +"POT-Creation-Date: 2024-02-06 12:20-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -109,8 +109,8 @@ msgstr "" #: ../../../_source/output.rst:86 msgid "" -"Note, while these examples were running, builds were also running, " -"hitting 128 processors, so these examples aren't benchmarks." +"Note, while these examples were running, builds were also running, hitting " +"128 processors, so these examples aren't benchmarks." msgstr "" #: ../../../_source/output.rst:90 @@ -197,6 +197,38 @@ msgstr "" msgid "``python examples/train_efficientnet.py``" msgstr "" -#~ msgid "System _output." -#~ msgstr "" +#: ../../../_source/output.rst:216 +msgid "``python examples/train_resnet.py``" +msgstr "" +#: ../../../_source/output.rst:222 +msgid "``python examples/transformer.py``" +msgstr "" + +#: ../../../_source/output.rst:228 +msgid "``python examples/vgg7.py``" +msgstr "" + +#: ../../../_source/output.rst:234 +msgid "``python examples/vit.py``" +msgstr "" + +#: ../../../_source/output.rst:240 +msgid "``python examples/vits.py``" +msgstr "" + +#: ../../../_source/output.rst:246 +msgid "``python examples/whisper.py``" +msgstr "" + +#: ../../../_source/output.rst:252 +msgid "``python examples/yolov3.py``" +msgstr "" + +#: ../../../_source/output.rst:258 +msgid "``python examples/yolov8-onnx.py``" +msgstr "" + +#: ../../../_source/output.rst:264 +msgid "``python examples/yolov8.py``" +msgstr "" diff --git a/docs/_source/output.rst b/docs/_source/output.rst index 883100f..7b5ee55 100644 --- a/docs/_source/output.rst +++ b/docs/_source/output.rst @@ -212,3 +212,57 @@ Note, while these examples were running, builds were also running, hitting .. literalinclude:: _static/_output/tinygrad/train_efficientnet.py.txt :language: output +``python examples/train_resnet.py`` +----------------------------------- + +.. literalinclude:: _static/_output/tinygrad/train_resnet.py.txt + :language: output + +``python examples/transformer.py`` +---------------------------------- + +.. literalinclude:: _static/_output/tinygrad/transformer.py.txt + :language: output + +``python examples/vgg7.py`` +--------------------------- + +.. literalinclude:: _static/_output/tinygrad/vgg7.py.txt + :language: output + +``python examples/vit.py`` +-------------------------- + +.. literalinclude:: _static/_output/tinygrad/vit.py.txt + :language: output + +``python examples/vits.py`` +--------------------------- + +.. literalinclude:: _static/_output/tinygrad/vits.py.txt + :language: output + +``python examples/whisper.py`` +------------------------------ + +.. literalinclude:: _static/_output/tinygrad/whisper.py.txt + :language: output + +``python examples/yolov3.py`` +----------------------------- + +.. literalinclude:: _static/_output/tinygrad/yolov3.py.txt + :language: output + +``python examples/yolov8-onnx.py`` +---------------------------------- + +.. literalinclude:: _static/_output/tinygrad/yolov8-onnx.py.txt + :language: output + +``python examples/yolov8.py`` +----------------------------- + +.. literalinclude:: _static/_output/tinygrad/yolov8.py.txt + :language: output +