mirror of
https://github.com/tinygrad/tinygrad.git
synced 2026-01-10 15:38:29 -05:00
6598 lines
437 KiB
HTML
6598 lines
437 KiB
HTML
|
|
<!doctype html>
|
|
<html lang="en" class="no-js">
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
|
|
|
|
|
|
<link rel="canonical" href="https://docs.tinygrad.org/tensor/elementwise/">
|
|
|
|
|
|
<link rel="prev" href="../movement/">
|
|
|
|
|
|
<link rel="next" href="../ops/">
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="icon" href="../../favicon.svg">
|
|
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.1">
|
|
|
|
|
|
|
|
<title>Elementwise - tinygrad docs</title>
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="../../assets/stylesheets/main.484c7ddc.min.css">
|
|
|
|
|
|
<link rel="stylesheet" href="../../assets/stylesheets/palette.ab4e12ef.min.css">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
|
|
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="../../assets/_markdown_exec_pyodide.css">
|
|
|
|
<link rel="stylesheet" href="../../assets/_markdown_exec_ansi.css">
|
|
|
|
<link rel="stylesheet" href="../../assets/_mkdocstrings.css">
|
|
|
|
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
|
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="black" data-md-color-accent="lime">
|
|
|
|
|
|
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
|
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
|
<label class="md-overlay" for="__drawer"></label>
|
|
<div data-md-component="skip">
|
|
|
|
|
|
<a href="#unary-ops-math" class="md-skip">
|
|
Skip to content
|
|
</a>
|
|
|
|
</div>
|
|
<div data-md-component="announce">
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<header class="md-header md-header--shadow" data-md-component="header">
|
|
<nav class="md-header__inner md-grid" aria-label="Header">
|
|
<a href="../.." title="tinygrad docs" class="md-header__button md-logo" aria-label="tinygrad docs" data-md-component="logo">
|
|
|
|
<img src="../../logo_tiny_dark.svg" alt="logo">
|
|
|
|
</a>
|
|
<label class="md-header__button md-icon" for="__drawer">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
|
|
</label>
|
|
<div class="md-header__title" data-md-component="header-title">
|
|
<div class="md-header__ellipsis">
|
|
<div class="md-header__topic">
|
|
<span class="md-ellipsis">
|
|
tinygrad docs
|
|
</span>
|
|
</div>
|
|
<div class="md-header__topic" data-md-component="header-topic">
|
|
<span class="md-ellipsis">
|
|
|
|
Elementwise
|
|
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<form class="md-header__option" data-md-component="palette">
|
|
|
|
|
|
|
|
|
|
<input class="md-option" data-md-color-media="(prefers-color-scheme)" data-md-color-scheme="default" data-md-color-primary="black" data-md-color-accent="lime" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_0">
|
|
|
|
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m14.3 16-.7-2h-3.2l-.7 2H7.8L11 7h2l3.2 9zM20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zm-9.15 3.96h2.3L12 9z"/></svg>
|
|
</label>
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="black" data-md-color-accent="lime" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
|
|
|
|
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
|
|
</label>
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="black" data-md-color-accent="lime" aria-label="Switch to system preference" type="radio" name="__palette" id="__palette_2">
|
|
|
|
<label class="md-header__button md-icon" title="Switch to system preference" for="__palette_0" hidden>
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
|
|
</label>
|
|
|
|
|
|
</form>
|
|
|
|
|
|
|
|
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-header__button md-icon" for="__search">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
</label>
|
|
<div class="md-search" data-md-component="search" role="dialog">
|
|
<label class="md-search__overlay" for="__search"></label>
|
|
<div class="md-search__inner" role="search">
|
|
<form class="md-search__form" name="search">
|
|
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
|
<label class="md-search__icon md-icon" for="__search">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
|
|
</label>
|
|
<nav class="md-search__options" aria-label="Search">
|
|
|
|
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
|
|
</button>
|
|
</nav>
|
|
|
|
<div class="md-search__suggest" data-md-component="search-suggest"></div>
|
|
|
|
</form>
|
|
<div class="md-search__output">
|
|
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
|
|
<div class="md-search-result" data-md-component="search-result">
|
|
<div class="md-search-result__meta">
|
|
Initializing search
|
|
</div>
|
|
<ol class="md-search-result__list" role="presentation"></ol>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="md-header__source">
|
|
<a href="https://github.com/tinygrad/tinygrad/" title="Go to repository" class="md-source" data-md-component="source">
|
|
<div class="md-source__icon md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
|
|
</div>
|
|
<div class="md-source__repository">
|
|
GitHub
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
</nav>
|
|
|
|
</header>
|
|
|
|
<div class="md-container" data-md-component="container">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<main class="md-main" data-md-component="main">
|
|
<div class="md-main__inner md-grid">
|
|
|
|
|
|
|
|
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
|
<div class="md-sidebar__scrollwrap">
|
|
<div class="md-sidebar__inner">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<nav class="md-nav md-nav--primary md-nav--integrated" aria-label="Navigation" data-md-level="0">
|
|
<label class="md-nav__title" for="__drawer">
|
|
<a href="../.." title="tinygrad docs" class="md-nav__button md-logo" aria-label="tinygrad docs" data-md-component="logo">
|
|
|
|
<img src="../../logo_tiny_dark.svg" alt="logo">
|
|
|
|
</a>
|
|
tinygrad docs
|
|
</label>
|
|
|
|
<div class="md-nav__source">
|
|
<a href="https://github.com/tinygrad/tinygrad/" title="Go to repository" class="md-source" data-md-component="source">
|
|
<div class="md-source__icon md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
|
|
</div>
|
|
<div class="md-source__repository">
|
|
GitHub
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_1" checked>
|
|
|
|
|
|
<div class="md-nav__link md-nav__container">
|
|
<a href="../.." class="md-nav__link ">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Home
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
|
|
|
|
<label class="md-nav__link " for="__nav_1" id="__nav_1_label" tabindex="">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
</div>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="true">
|
|
<label class="md-nav__title" for="__nav_1">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
|
|
|
|
Home
|
|
|
|
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../quickstart/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Quickstart
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../showcase/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Showcase
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../mnist/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
MNIST Tutorial
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_1_5" checked>
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_1_5" id="__nav_1_5_label" tabindex="0">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
API Reference
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_1_5_label" aria-expanded="true">
|
|
<label class="md-nav__title" for="__nav_1_5">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
|
|
|
|
API Reference
|
|
|
|
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_1_5_1" checked>
|
|
|
|
|
|
<div class="md-nav__link md-nav__container">
|
|
<a href="../" class="md-nav__link ">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Tensor
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
|
|
|
|
<label class="md-nav__link " for="__nav_1_5_1" id="__nav_1_5_1_label" tabindex="0">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
</div>
|
|
|
|
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_1_5_1_label" aria-expanded="true">
|
|
<label class="md-nav__title" for="__nav_1_5_1">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
|
|
|
|
Tensor
|
|
|
|
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../properties/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Properties
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../creation/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Creation
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../movement/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Movement
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--active">
|
|
|
|
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
|
|
|
|
|
|
|
<label class="md-nav__link md-nav__link--active" for="__toc">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Elementwise
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<a href="./" class="md-nav__link md-nav__link--active">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Elementwise
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
|
|
|
|
|
|
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__title" for="__toc">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Table of contents
|
|
</label>
|
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#unary-ops-math" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Unary Ops (math)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Unary Ops (math)">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.logical_not" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> logical_not
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.neg" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> neg
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.log" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> log
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.log2" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> log2
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.exp" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> exp
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.exp2" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> exp2
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.sqrt" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> sqrt
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.rsqrt" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> rsqrt
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.sin" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> sin
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.cos" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> cos
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.tan" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> tan
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.asin" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> asin
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.acos" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> acos
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.atan" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> atan
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.trunc" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> trunc
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.ceil" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> ceil
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.floor" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> floor
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.round" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> round
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.isinf" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> isinf
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.isnan" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> isnan
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.isfinite" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> isfinite
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.lerp" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> lerp
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.square" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> square
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.clamp" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> clamp
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.clip" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> clip
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.sign" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> sign
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.abs" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> abs
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.reciprocal" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> reciprocal
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#unary-ops-activation" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Unary Ops (activation)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Unary Ops (activation)">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.relu" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> relu
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.sigmoid" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> sigmoid
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.logsigmoid" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> logsigmoid
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.hardsigmoid" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> hardsigmoid
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.elu" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> elu
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.celu" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> celu
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.selu" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> selu
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.swish" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> swish
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.silu" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> silu
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.relu6" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> relu6
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.hardswish" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> hardswish
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.tanh" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> tanh
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.sinh" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> sinh
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.cosh" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> cosh
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.atanh" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> atanh
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.asinh" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> asinh
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.acosh" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> acosh
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.hardtanh" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> hardtanh
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.erf" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> erf
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.gelu" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> gelu
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.quick_gelu" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> quick_gelu
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.leaky_relu" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> leaky_relu
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.mish" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> mish
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.softplus" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> softplus
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.softsign" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> softsign
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#elementwise-ops-broadcasted" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Elementwise Ops (broadcasted)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Elementwise Ops (broadcasted)">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.add" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> add
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.sub" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> sub
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.mul" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> mul
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.div" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> div
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.idiv" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> idiv
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.mod" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> mod
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.bitwise_xor" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> bitwise_xor
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.bitwise_and" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> bitwise_and
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.bitwise_or" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> bitwise_or
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.bitwise_not" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> bitwise_not
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.lshift" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> lshift
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.rshift" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> rshift
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.pow" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> pow
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.maximum" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> maximum
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.minimum" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> minimum
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.where" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> where
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.copysign" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> copysign
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.logaddexp" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> logaddexp
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#casting-ops" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Casting Ops
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Casting Ops">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.cast" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> cast
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.bitcast" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> bitcast
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.float" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> float
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.half" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> half
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.int" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> int
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.bool" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> bool
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../ops/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Complex Ops
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../dtypes/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
dtypes
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../nn/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
nn (Neural Networks)
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../env_vars/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Environment Variables
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../runtime/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Runtime
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_1_6" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_1_6" id="__nav_1_6_label" tabindex="0">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Developer
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_1_6_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_1_6">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
|
|
|
|
Developer
|
|
|
|
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../developer/developer/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Intro
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../developer/layout/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Layout
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../developer/speed/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Speed
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../developer/uop/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
UOp
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_1_6_5" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_1_6_5" id="__nav_1_6_5_label" tabindex="0">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Runtime
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_1_6_5_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_1_6_5">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
|
|
|
|
Runtime
|
|
|
|
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../developer/runtime/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Runtime Overview
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../developer/hcq/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
HCQ
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../developer/am/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
AM Driver
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../tinybox/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
tinybox
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="md-content" data-md-component="content">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<nav class="md-path" aria-label="Navigation" >
|
|
<ol class="md-path__list">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-path__item">
|
|
<a href="../.." class="md-path__link">
|
|
|
|
<span class="md-ellipsis">
|
|
Home
|
|
</span>
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-path__item">
|
|
<a href="../" class="md-path__link">
|
|
|
|
<span class="md-ellipsis">
|
|
API Reference
|
|
</span>
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-path__item">
|
|
<a href="../" class="md-path__link">
|
|
|
|
<span class="md-ellipsis">
|
|
Tensor
|
|
</span>
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ol>
|
|
</nav>
|
|
|
|
|
|
<article class="md-content__inner md-typeset">
|
|
|
|
|
|
|
|
|
|
|
|
<a href="https://github.com/tinygrad/tinygrad/edit/master/docs/tensor/elementwise.md" title="Edit this page" class="md-content__button md-icon" rel="edit">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4zm10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1z"/></svg>
|
|
</a>
|
|
|
|
|
|
|
|
|
|
|
|
<a href="https://github.com/tinygrad/tinygrad/raw/master/docs/tensor/elementwise.md" title="View source of this page" class="md-content__button md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 18c.56 0 1 .44 1 1s-.44 1-1 1-1-.44-1-1 .44-1 1-1m0-3c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4m0 6.5a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5M9.27 20H6V4h7v5h5v4.07c.7.08 1.36.25 2 .49V8l-6-6H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.5a8.2 8.2 0 0 1-1.23-2"/></svg>
|
|
</a>
|
|
|
|
|
|
|
|
<h1>Elementwise</h1>
|
|
|
|
<p>Elementwise ops operate on a per element basis. They don't change the shape of the tensor.</p>
|
|
<h2 id="unary-ops-math">Unary Ops (math)<a class="headerlink" href="#unary-ops-math" title="Permanent link">¤</a></h2>
|
|
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.logical_not" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">logical_not</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.logical_not" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">logical_not</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes the logical NOT of the tensor element-wise.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="kc">False</span><span class="p">,</span> <span class="kc">True</span><span class="p">])</span><span class="o">.</span><span class="n">logical_not</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span> <span class="kc">True</span> <span class="kc">False</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2716</span>
|
|
<span class="normal">2717</span>
|
|
<span class="normal">2718</span>
|
|
<span class="normal">2719</span>
|
|
<span class="normal">2720</span>
|
|
<span class="normal">2721</span>
|
|
<span class="normal">2722</span>
|
|
<span class="normal">2723</span>
|
|
<span class="normal">2724</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">logical_not</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes the logical NOT of the tensor element-wise.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([False, True]).logical_not().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">dtypes</span><span class="o">.</span><span class="n">bool</span><span class="p">)</span><span class="o">.</span><span class="n">_apply_broadcasted_uop</span><span class="p">(</span><span class="n">UOp</span><span class="o">.</span><span class="n">ne</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.neg" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">neg</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.neg" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">neg</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Negates the tensor element-wise.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">neg</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span> <span class="mf">3.</span> <span class="mf">2.</span> <span class="mf">1.</span> <span class="o">-</span><span class="mf">0.</span> <span class="o">-</span><span class="mf">1.</span> <span class="o">-</span><span class="mf">2.</span> <span class="o">-</span><span class="mf">3.</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2726</span>
|
|
<span class="normal">2727</span>
|
|
<span class="normal">2728</span>
|
|
<span class="normal">2729</span>
|
|
<span class="normal">2730</span>
|
|
<span class="normal">2731</span>
|
|
<span class="normal">2732</span>
|
|
<span class="normal">2733</span>
|
|
<span class="normal">2734</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">neg</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Negates the tensor element-wise.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).neg().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">*-</span><span class="mi">1</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dtype</span> <span class="o">!=</span> <span class="n">dtypes</span><span class="o">.</span><span class="n">bool</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">logical_not</span><span class="p">()</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.log" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">log</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.log" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">log</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes the natural logarithm element-wise.</p>
|
|
<p>See: <a href="https://en.wikipedia.org/wiki/Logarithm">https://en.wikipedia.org/wiki/Logarithm</a></p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">4.</span><span class="p">,</span> <span class="mf">8.</span><span class="p">])</span><span class="o">.</span><span class="n">log</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="mf">0.</span> <span class="mf">0.6931</span> <span class="mf">1.3863</span> <span class="mf">2.0794</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2748</span>
|
|
<span class="normal">2749</span>
|
|
<span class="normal">2750</span>
|
|
<span class="normal">2751</span>
|
|
<span class="normal">2752</span>
|
|
<span class="normal">2753</span>
|
|
<span class="normal">2754</span>
|
|
<span class="normal">2755</span>
|
|
<span class="normal">2756</span>
|
|
<span class="normal">2757</span>
|
|
<span class="normal">2758</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">log</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes the natural logarithm element-wise.</span>
|
|
|
|
<span class="sd"> See: https://en.wikipedia.org/wiki/Logarithm</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([1., 2., 4., 8.]).log().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">log2</span><span class="p">()</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.log2" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">log2</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.log2" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">log2</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes the base-2 logarithm element-wise.</p>
|
|
<p>See: <a href="https://en.wikipedia.org/wiki/Logarithm">https://en.wikipedia.org/wiki/Logarithm</a></p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">4.</span><span class="p">,</span> <span class="mf">8.</span><span class="p">])</span><span class="o">.</span><span class="n">log2</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="mf">0.</span> <span class="mf">1.</span> <span class="mf">2.</span> <span class="mf">3.</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2760</span>
|
|
<span class="normal">2761</span>
|
|
<span class="normal">2762</span>
|
|
<span class="normal">2763</span>
|
|
<span class="normal">2764</span>
|
|
<span class="normal">2765</span>
|
|
<span class="normal">2766</span>
|
|
<span class="normal">2767</span>
|
|
<span class="normal">2768</span>
|
|
<span class="normal">2769</span>
|
|
<span class="normal">2770</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">log2</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes the base-2 logarithm element-wise.</span>
|
|
|
|
<span class="sd"> See: https://en.wikipedia.org/wiki/Logarithm</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([1., 2., 4., 8.]).log2().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">least_upper_float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">))</span><span class="o">.</span><span class="n">_apply_uop</span><span class="p">(</span><span class="n">UOp</span><span class="o">.</span><span class="n">log2</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.exp" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">exp</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.exp" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">exp</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes the exponential function element-wise.</p>
|
|
<p>See: <a href="https://en.wikipedia.org/wiki/Exponential_function">https://en.wikipedia.org/wiki/Exponential_function</a></p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">exp</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span> <span class="mf">1.</span> <span class="mf">2.7183</span> <span class="mf">7.3891</span> <span class="mf">20.0855</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2772</span>
|
|
<span class="normal">2773</span>
|
|
<span class="normal">2774</span>
|
|
<span class="normal">2775</span>
|
|
<span class="normal">2776</span>
|
|
<span class="normal">2777</span>
|
|
<span class="normal">2778</span>
|
|
<span class="normal">2779</span>
|
|
<span class="normal">2780</span>
|
|
<span class="normal">2781</span>
|
|
<span class="normal">2782</span>
|
|
<span class="normal">2783</span>
|
|
<span class="normal">2784</span>
|
|
<span class="normal">2785</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">exp</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes the exponential function element-wise.</span>
|
|
|
|
<span class="sd"> See: https://en.wikipedia.org/wiki/Exponential_function</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([0., 1., 2., 3.]).exp().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="c1"># TODO: make it generic, and same thing to log and cos</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_floating_point</span><span class="p">():</span> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">least_upper_dtype</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">,</span> <span class="n">dtypes</span><span class="o">.</span><span class="n">float32</span><span class="p">))</span><span class="o">.</span><span class="n">mul</span><span class="p">(</span><span class="mi">1</span><span class="o">/</span><span class="n">math</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="mi">2</span><span class="p">))</span><span class="o">.</span><span class="n">exp2</span><span class="p">()</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">)</span>
|
|
<span class="c1"># TODO: behavior when DEFAULT_FLOAT is bfloat16 and input is int32?</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">mul</span><span class="p">(</span><span class="mi">1</span><span class="o">/</span><span class="n">math</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="mi">2</span><span class="p">))</span><span class="o">.</span><span class="n">exp2</span><span class="p">()</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.exp2" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">exp2</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.exp2" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">exp2</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes the base-2 exponential function element-wise.</p>
|
|
<p>See: <a href="https://en.wikipedia.org/wiki/Exponential_function">https://en.wikipedia.org/wiki/Exponential_function</a></p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">exp2</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="mf">1.</span> <span class="mf">2.</span> <span class="mf">4.</span> <span class="mf">8.</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2787</span>
|
|
<span class="normal">2788</span>
|
|
<span class="normal">2789</span>
|
|
<span class="normal">2790</span>
|
|
<span class="normal">2791</span>
|
|
<span class="normal">2792</span>
|
|
<span class="normal">2793</span>
|
|
<span class="normal">2794</span>
|
|
<span class="normal">2795</span>
|
|
<span class="normal">2796</span>
|
|
<span class="normal">2797</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">exp2</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes the base-2 exponential function element-wise.</span>
|
|
|
|
<span class="sd"> See: https://en.wikipedia.org/wiki/Exponential_function</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([0., 1., 2., 3.]).exp2().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">least_upper_float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">))</span><span class="o">.</span><span class="n">_apply_uop</span><span class="p">(</span><span class="n">UOp</span><span class="o">.</span><span class="n">exp2</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.sqrt" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">sqrt</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.sqrt" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">sqrt</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes the square root of the tensor element-wise.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">,</span> <span class="mf">4.</span><span class="p">])</span><span class="o">.</span><span class="n">sqrt</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="mf">1.</span> <span class="mf">1.4142</span> <span class="mf">1.7321</span> <span class="mf">2.</span> <span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2811</span>
|
|
<span class="normal">2812</span>
|
|
<span class="normal">2813</span>
|
|
<span class="normal">2814</span>
|
|
<span class="normal">2815</span>
|
|
<span class="normal">2816</span>
|
|
<span class="normal">2817</span>
|
|
<span class="normal">2818</span>
|
|
<span class="normal">2819</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">sqrt</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes the square root of the tensor element-wise.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([1., 2., 3., 4.]).sqrt().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">least_upper_float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">))</span><span class="o">.</span><span class="n">_apply_uop</span><span class="p">(</span><span class="n">UOp</span><span class="o">.</span><span class="n">sqrt</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.rsqrt" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">rsqrt</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.rsqrt" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">rsqrt</span><span class="p">()</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes the reciprocal of the square root of the tensor element-wise.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">,</span> <span class="mf">4.</span><span class="p">])</span><span class="o">.</span><span class="n">rsqrt</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="mf">1.</span> <span class="mf">0.7071</span> <span class="mf">0.5774</span> <span class="mf">0.5</span> <span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">508</span>
|
|
<span class="normal">509</span>
|
|
<span class="normal">510</span>
|
|
<span class="normal">511</span>
|
|
<span class="normal">512</span>
|
|
<span class="normal">513</span>
|
|
<span class="normal">514</span>
|
|
<span class="normal">515</span>
|
|
<span class="normal">516</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">rsqrt</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes the reciprocal of the square root of the tensor element-wise.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([1., 2., 3., 4.]).rsqrt().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sqrt</span><span class="p">()</span><span class="o">.</span><span class="n">reciprocal</span><span class="p">()</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.sin" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">sin</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.sin" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">sin</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes the sine of the tensor element-wise.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mf">0.</span><span class="p">,</span> <span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="p">,</span> <span class="mi">3</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="p">])</span><span class="o">.</span><span class="n">sin</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span> <span class="mf">0.</span> <span class="mf">1.</span> <span class="o">-</span><span class="mf">0.</span> <span class="o">-</span><span class="mf">1.</span> <span class="mf">0.</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2821</span>
|
|
<span class="normal">2822</span>
|
|
<span class="normal">2823</span>
|
|
<span class="normal">2824</span>
|
|
<span class="normal">2825</span>
|
|
<span class="normal">2826</span>
|
|
<span class="normal">2827</span>
|
|
<span class="normal">2828</span>
|
|
<span class="normal">2829</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">sin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes the sine of the tensor element-wise.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([0., math.pi/2, math.pi, 3*math.pi/2, 2*math.pi]).sin().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">least_upper_float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">))</span><span class="o">.</span><span class="n">_apply_uop</span><span class="p">(</span><span class="n">UOp</span><span class="o">.</span><span class="n">sin</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.cos" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">cos</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.cos" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">cos</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes the cosine of the tensor element-wise.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mf">0.</span><span class="p">,</span> <span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="p">,</span> <span class="mi">3</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="p">])</span><span class="o">.</span><span class="n">cos</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span> <span class="mf">1.0000e+00</span> <span class="mf">0.0000e+00</span> <span class="o">-</span><span class="mf">1.0000e+00</span> <span class="o">-</span><span class="mf">2.3842e-07</span> <span class="mf">1.0000e+00</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2831</span>
|
|
<span class="normal">2832</span>
|
|
<span class="normal">2833</span>
|
|
<span class="normal">2834</span>
|
|
<span class="normal">2835</span>
|
|
<span class="normal">2836</span>
|
|
<span class="normal">2837</span>
|
|
<span class="normal">2838</span>
|
|
<span class="normal">2839</span>
|
|
<span class="normal">2840</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">cos</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes the cosine of the tensor element-wise.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([0., math.pi/2, math.pi, 3*math.pi/2, 2*math.pi]).cos().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_floating_point</span><span class="p">():</span> <span class="k">return</span> <span class="p">((</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span><span class="o">-</span><span class="bp">self</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">least_upper_dtype</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">,</span> <span class="n">dtypes</span><span class="o">.</span><span class="n">float32</span><span class="p">)))</span><span class="o">.</span><span class="n">sin</span><span class="p">()</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="p">((</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span><span class="o">-</span><span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">sin</span><span class="p">()</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.tan" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">tan</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.tan" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">tan</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes the tangent of the tensor element-wise.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mf">0.</span><span class="p">,</span> <span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="o">/</span><span class="mi">4</span><span class="p">,</span> <span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="o">/</span><span class="mi">4</span><span class="p">,</span> <span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="p">])</span><span class="o">.</span><span class="n">tan</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span> <span class="mf">0.</span> <span class="mf">1.</span> <span class="n">inf</span> <span class="o">-</span><span class="mf">1.</span> <span class="mf">0.</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2842</span>
|
|
<span class="normal">2843</span>
|
|
<span class="normal">2844</span>
|
|
<span class="normal">2845</span>
|
|
<span class="normal">2846</span>
|
|
<span class="normal">2847</span>
|
|
<span class="normal">2848</span>
|
|
<span class="normal">2849</span>
|
|
<span class="normal">2850</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">tan</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes the tangent of the tensor element-wise.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([0., math.pi/4, math.pi/2, 3*math.pi/4, math.pi]).tan().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sin</span><span class="p">()</span> <span class="o">/</span> <span class="bp">self</span><span class="o">.</span><span class="n">cos</span><span class="p">()</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.asin" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">asin</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.asin" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">asin</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes the inverse sine (arcsine) of the tensor element-wise.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">0.9</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.6</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.3</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">0.3</span><span class="p">,</span> <span class="mf">0.6</span><span class="p">,</span> <span class="mf">0.9</span><span class="p">])</span><span class="o">.</span><span class="n">asin</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">1.1198</span> <span class="o">-</span><span class="mf">0.6435</span> <span class="o">-</span><span class="mf">0.3047</span> <span class="mf">0.</span> <span class="mf">0.3047</span> <span class="mf">0.6435</span> <span class="mf">1.1198</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2852</span>
|
|
<span class="normal">2853</span>
|
|
<span class="normal">2854</span>
|
|
<span class="normal">2855</span>
|
|
<span class="normal">2856</span>
|
|
<span class="normal">2857</span>
|
|
<span class="normal">2858</span>
|
|
<span class="normal">2859</span>
|
|
<span class="normal">2860</span>
|
|
<span class="normal">2861</span>
|
|
<span class="normal">2862</span>
|
|
<span class="normal">2863</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">asin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes the inverse sine (arcsine) of the tensor element-wise.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-0.9, -0.6, -0.3, 0., 0.3, 0.6, 0.9]).asin().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="c1"># https://personal.math.ubc.ca/~cbm/aands/page_81.htm 4.4.46</span>
|
|
<span class="n">coefficients</span> <span class="o">=</span> <span class="p">[</span><span class="o">-</span><span class="mf">0.0012624911</span><span class="p">,</span> <span class="mf">0.0066700901</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.0170881256</span><span class="p">,</span> <span class="mf">0.0308918810</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.0501743046</span><span class="p">,</span> <span class="mf">0.0889789874</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.2145988016</span><span class="p">,</span> <span class="mf">1.5707963050</span><span class="p">]</span>
|
|
<span class="n">x</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">pi</span> <span class="o">/</span> <span class="mi">2</span> <span class="o">-</span> <span class="p">(</span><span class="mf">1.0</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">abs</span><span class="p">())</span><span class="o">.</span><span class="n">sqrt</span><span class="p">()</span> <span class="o">*</span> <span class="n">polyN</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">abs</span><span class="p">(),</span> <span class="n">coefficients</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sign</span><span class="p">()</span> <span class="o">*</span> <span class="n">x</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.acos" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">acos</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.acos" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">acos</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes the inverse cosine (arccosine) of the tensor element-wise.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">0.9</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.6</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.3</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">0.3</span><span class="p">,</span> <span class="mf">0.6</span><span class="p">,</span> <span class="mf">0.9</span><span class="p">])</span><span class="o">.</span><span class="n">acos</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="mf">2.6906</span> <span class="mf">2.2143</span> <span class="mf">1.8755</span> <span class="mf">1.5708</span> <span class="mf">1.2661</span> <span class="mf">0.9273</span> <span class="mf">0.451</span> <span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2865</span>
|
|
<span class="normal">2866</span>
|
|
<span class="normal">2867</span>
|
|
<span class="normal">2868</span>
|
|
<span class="normal">2869</span>
|
|
<span class="normal">2870</span>
|
|
<span class="normal">2871</span>
|
|
<span class="normal">2872</span>
|
|
<span class="normal">2873</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">acos</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes the inverse cosine (arccosine) of the tensor element-wise.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-0.9, -0.6, -0.3, 0., 0.3, 0.6, 0.9]).acos().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">math</span><span class="o">.</span><span class="n">pi</span> <span class="o">/</span> <span class="mi">2</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">asin</span><span class="p">()</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.atan" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">atan</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.atan" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">atan</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes the inverse tangent (arctan) of the tensor element-wise.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">atan</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">1.249</span> <span class="o">-</span><span class="mf">1.1071</span> <span class="o">-</span><span class="mf">0.7854</span> <span class="mf">0.</span> <span class="mf">0.7854</span> <span class="mf">1.1071</span> <span class="mf">1.249</span> <span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2875</span>
|
|
<span class="normal">2876</span>
|
|
<span class="normal">2877</span>
|
|
<span class="normal">2878</span>
|
|
<span class="normal">2879</span>
|
|
<span class="normal">2880</span>
|
|
<span class="normal">2881</span>
|
|
<span class="normal">2882</span>
|
|
<span class="normal">2883</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">atan</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes the inverse tangent (arctan) of the tensor element-wise.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).atan().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="p">(</span><span class="bp">self</span> <span class="o">/</span> <span class="p">(</span><span class="mi">1</span> <span class="o">+</span> <span class="bp">self</span> <span class="o">*</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">sqrt</span><span class="p">())</span><span class="o">.</span><span class="n">asin</span><span class="p">()</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.trunc" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">trunc</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.trunc" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">trunc</span><span class="p">()</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Truncates the tensor element-wise.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.5</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.5</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.5</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.5</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">,</span> <span class="mf">2.5</span><span class="p">,</span> <span class="mf">3.5</span><span class="p">])</span><span class="o">.</span><span class="n">trunc</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">3.</span> <span class="o">-</span><span class="mf">2.</span> <span class="o">-</span><span class="mf">1.</span> <span class="o">-</span><span class="mf">0.</span> <span class="mf">0.</span> <span class="mf">1.</span> <span class="mf">2.</span> <span class="mf">3.</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">261</span>
|
|
<span class="normal">262</span>
|
|
<span class="normal">263</span>
|
|
<span class="normal">264</span>
|
|
<span class="normal">265</span>
|
|
<span class="normal">266</span>
|
|
<span class="normal">267</span>
|
|
<span class="normal">268</span>
|
|
<span class="normal">269</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">trunc</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Truncates the tensor element-wise.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5]).trunc().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alu</span><span class="p">(</span><span class="n">Ops</span><span class="o">.</span><span class="n">TRUNC</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.ceil" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">ceil</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.ceil" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">ceil</span><span class="p">()</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Rounds the tensor element-wise towards positive infinity.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.5</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.5</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.5</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.5</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">,</span> <span class="mf">2.5</span><span class="p">,</span> <span class="mf">3.5</span><span class="p">])</span><span class="o">.</span><span class="n">ceil</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">3.</span> <span class="o">-</span><span class="mf">2.</span> <span class="o">-</span><span class="mf">1.</span> <span class="o">-</span><span class="mf">0.</span> <span class="mf">1.</span> <span class="mf">2.</span> <span class="mf">3.</span> <span class="mf">4.</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">347</span>
|
|
<span class="normal">348</span>
|
|
<span class="normal">349</span>
|
|
<span class="normal">350</span>
|
|
<span class="normal">351</span>
|
|
<span class="normal">352</span>
|
|
<span class="normal">353</span>
|
|
<span class="normal">354</span>
|
|
<span class="normal">355</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">ceil</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Rounds the tensor element-wise towards positive infinity.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5]).ceil().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="p">(</span><span class="bp">self</span> <span class="o">></span> <span class="p">(</span><span class="n">b</span> <span class="o">:=</span> <span class="bp">self</span><span class="o">.</span><span class="n">trunc</span><span class="p">()))</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">b</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.floor" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">floor</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.floor" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">floor</span><span class="p">()</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Rounds the tensor element-wise towards negative infinity.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.5</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.5</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.5</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.5</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">,</span> <span class="mf">2.5</span><span class="p">,</span> <span class="mf">3.5</span><span class="p">])</span><span class="o">.</span><span class="n">floor</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">4.</span> <span class="o">-</span><span class="mf">3.</span> <span class="o">-</span><span class="mf">2.</span> <span class="o">-</span><span class="mf">1.</span> <span class="mf">0.</span> <span class="mf">1.</span> <span class="mf">2.</span> <span class="mf">3.</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">357</span>
|
|
<span class="normal">358</span>
|
|
<span class="normal">359</span>
|
|
<span class="normal">360</span>
|
|
<span class="normal">361</span>
|
|
<span class="normal">362</span>
|
|
<span class="normal">363</span>
|
|
<span class="normal">364</span>
|
|
<span class="normal">365</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">floor</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Rounds the tensor element-wise towards negative infinity.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5]).floor().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="p">(</span><span class="bp">self</span> <span class="o"><</span> <span class="p">(</span><span class="n">b</span> <span class="o">:=</span> <span class="bp">self</span><span class="o">.</span><span class="n">trunc</span><span class="p">()))</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">b</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.round" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">round</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.round" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">round</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Rounds the tensor element-wise with rounding half to even.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.5</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.5</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.5</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.5</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">,</span> <span class="mf">2.5</span><span class="p">,</span> <span class="mf">3.5</span><span class="p">])</span><span class="o">.</span><span class="n">round</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">4.</span> <span class="o">-</span><span class="mf">2.</span> <span class="o">-</span><span class="mf">2.</span> <span class="mf">0.</span> <span class="mf">0.</span> <span class="mf">2.</span> <span class="mf">2.</span> <span class="mf">4.</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2887</span>
|
|
<span class="normal">2888</span>
|
|
<span class="normal">2889</span>
|
|
<span class="normal">2890</span>
|
|
<span class="normal">2891</span>
|
|
<span class="normal">2892</span>
|
|
<span class="normal">2893</span>
|
|
<span class="normal">2894</span>
|
|
<span class="normal">2895</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">round</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Tensor</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Rounds the tensor element-wise with rounding half to even.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5]).round().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="p">((</span><span class="bp">self</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="o">==</span> <span class="p">((</span><span class="n">b</span> <span class="o">:=</span> <span class="bp">self</span><span class="o">.</span><span class="n">trunc</span><span class="p">()</span> <span class="o">/</span> <span class="mf">2.0</span><span class="p">)</span><span class="o">.</span><span class="n">trunc</span><span class="p">()</span> <span class="o">==</span> <span class="n">b</span><span class="p">))</span><span class="o">.</span><span class="n">where</span><span class="p">((</span><span class="bp">self</span> <span class="o">-</span> <span class="mf">0.5</span><span class="p">)</span><span class="o">.</span><span class="n">ceil</span><span class="p">(),</span> <span class="p">(</span><span class="bp">self</span> <span class="o">+</span> <span class="mf">0.5</span><span class="p">)</span><span class="o">.</span><span class="n">floor</span><span class="p">())</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.isinf" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">isinf</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.isinf" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">isinf</span><span class="p">(</span>
|
|
<span class="n">detect_positive</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
|
|
<span class="n">detect_negative</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Checks the tensor element-wise to return True where the element is infinity, otherwise returns False</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="nb">float</span><span class="p">(</span><span class="s1">'inf'</span><span class="p">),</span> <span class="mi">2</span><span class="p">,</span> <span class="nb">float</span><span class="p">(</span><span class="s1">'-inf'</span><span class="p">),</span> <span class="nb">float</span><span class="p">(</span><span class="s1">'nan'</span><span class="p">)])</span><span class="o">.</span><span class="n">isinf</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="kc">False</span> <span class="kc">True</span> <span class="kc">False</span> <span class="kc">True</span> <span class="kc">False</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">327</span>
|
|
<span class="normal">328</span>
|
|
<span class="normal">329</span>
|
|
<span class="normal">330</span>
|
|
<span class="normal">331</span>
|
|
<span class="normal">332</span>
|
|
<span class="normal">333</span>
|
|
<span class="normal">334</span>
|
|
<span class="normal">335</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">isinf</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">detect_positive</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">detect_negative</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Checks the tensor element-wise to return True where the element is infinity, otherwise returns False</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([1, float('inf'), 2, float('-inf'), float('nan')]).isinf().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">eq</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="s2">"inf"</span><span class="p">))</span> <span class="o">*</span> <span class="n">detect_positive</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">eq</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="s2">"-inf"</span><span class="p">))</span> <span class="o">*</span> <span class="n">detect_negative</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.isnan" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">isnan</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.isnan" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">isnan</span><span class="p">()</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Checks the tensor element-wise to return True where the element is NaN, otherwise returns False</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="nb">float</span><span class="p">(</span><span class="s1">'inf'</span><span class="p">),</span> <span class="mi">2</span><span class="p">,</span> <span class="nb">float</span><span class="p">(</span><span class="s1">'-inf'</span><span class="p">),</span> <span class="nb">float</span><span class="p">(</span><span class="s1">'nan'</span><span class="p">)])</span><span class="o">.</span><span class="n">isnan</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="kc">False</span> <span class="kc">False</span> <span class="kc">False</span> <span class="kc">False</span> <span class="kc">True</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">317</span>
|
|
<span class="normal">318</span>
|
|
<span class="normal">319</span>
|
|
<span class="normal">320</span>
|
|
<span class="normal">321</span>
|
|
<span class="normal">322</span>
|
|
<span class="normal">323</span>
|
|
<span class="normal">324</span>
|
|
<span class="normal">325</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">isnan</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Checks the tensor element-wise to return True where the element is NaN, otherwise returns False</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([1, float('inf'), 2, float('-inf'), float('nan')]).isnan().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span> <span class="o">!=</span> <span class="bp">self</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.isfinite" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">isfinite</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.isfinite" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">isfinite</span><span class="p">()</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Checks the tensor element-wise to return True where the element is finite, otherwise returns False</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="nb">float</span><span class="p">(</span><span class="s1">'inf'</span><span class="p">),</span> <span class="mi">2</span><span class="p">,</span> <span class="nb">float</span><span class="p">(</span><span class="s1">'-inf'</span><span class="p">),</span> <span class="nb">float</span><span class="p">(</span><span class="s1">'nan'</span><span class="p">)])</span><span class="o">.</span><span class="n">isfinite</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span> <span class="kc">True</span> <span class="kc">False</span> <span class="kc">True</span> <span class="kc">False</span> <span class="kc">False</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">337</span>
|
|
<span class="normal">338</span>
|
|
<span class="normal">339</span>
|
|
<span class="normal">340</span>
|
|
<span class="normal">341</span>
|
|
<span class="normal">342</span>
|
|
<span class="normal">343</span>
|
|
<span class="normal">344</span>
|
|
<span class="normal">345</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">isfinite</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Checks the tensor element-wise to return True where the element is finite, otherwise returns False</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([1, float('inf'), 2, float('-inf'), float('nan')]).isfinite().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">isinf</span><span class="p">()</span> <span class="o">|</span> <span class="bp">self</span><span class="o">.</span><span class="n">isnan</span><span class="p">())</span><span class="o">.</span><span class="n">logical_not</span><span class="p">()</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.lerp" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">lerp</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.lerp" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">lerp</span><span class="p">(</span><span class="n">end</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span><span class="p">,</span> <span class="n">weight</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">float</span> (<code>tinygrad.tensor.Tensor.float</code>)" href="#tinygrad.Tensor.float">float</a></span><span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Linearly interpolates between <code class="language-python highlight"><span class="bp">self</span></code> and <code class="language-python highlight"><span class="n">end</span></code> by <code class="language-python highlight"><span class="n">weight</span></code>.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">lerp</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mf">4.</span><span class="p">,</span> <span class="mf">5.</span><span class="p">,</span> <span class="mf">6.</span><span class="p">]),</span> <span class="mf">0.5</span><span class="p">)</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="mf">2.5</span> <span class="mf">3.5</span> <span class="mf">4.5</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2897</span>
|
|
<span class="normal">2898</span>
|
|
<span class="normal">2899</span>
|
|
<span class="normal">2900</span>
|
|
<span class="normal">2901</span>
|
|
<span class="normal">2902</span>
|
|
<span class="normal">2903</span>
|
|
<span class="normal">2904</span>
|
|
<span class="normal">2905</span>
|
|
<span class="normal">2906</span>
|
|
<span class="normal">2907</span>
|
|
<span class="normal">2908</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">lerp</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">end</span><span class="p">:</span><span class="n">Tensor</span><span class="p">,</span> <span class="n">weight</span><span class="p">:</span><span class="n">Tensor</span><span class="o">|</span><span class="nb">float</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Linearly interpolates between `self` and `end` by `weight`.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([1., 2., 3.]).lerp(Tensor([4., 5., 6.]), 0.5).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dtype</span> <span class="o">==</span> <span class="n">dtypes</span><span class="o">.</span><span class="n">uint8</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">weight</span><span class="p">,</span> <span class="n">Tensor</span><span class="p">):</span>
|
|
<span class="n">w_i</span> <span class="o">=</span> <span class="p">(</span><span class="n">weight</span> <span class="o">*</span> <span class="p">(</span><span class="mi">1</span><span class="o"><<</span><span class="p">(</span><span class="n">W_PREC</span><span class="o">:=</span><span class="mi">7</span><span class="p">))</span> <span class="o">+</span> <span class="mf">0.5</span><span class="p">)</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">dtypes</span><span class="o">.</span><span class="n">int16</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">+</span><span class="p">(((</span><span class="n">end</span> <span class="o">-</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">dtypes</span><span class="o">.</span><span class="n">int8</span><span class="p">)</span> <span class="o">*</span> <span class="n">w_i</span> <span class="o">+</span> <span class="p">(</span><span class="mi">1</span><span class="o"><<</span><span class="n">W_PREC</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">dtypes</span><span class="o">.</span><span class="n">uint16</span><span class="p">)</span> <span class="o">>></span> <span class="n">W_PREC</span><span class="p">))</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">dtypes</span><span class="o">.</span><span class="n">uint8</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="bp">self</span> <span class="o">+</span> <span class="p">(</span><span class="n">end</span> <span class="o">-</span> <span class="bp">self</span><span class="p">)</span> <span class="o">*</span> <span class="n">weight</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.square" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">square</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.square" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">square</span><span class="p">()</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Squares the tensor element-wise.
|
|
Equivalent to <code class="language-python highlight"><span class="bp">self</span><span class="o">*</span><span class="bp">self</span></code>.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">square</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="mf">9.</span> <span class="mf">4.</span> <span class="mf">1.</span> <span class="mf">0.</span> <span class="mf">1.</span> <span class="mf">4.</span> <span class="mf">9.</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">289</span>
|
|
<span class="normal">290</span>
|
|
<span class="normal">291</span>
|
|
<span class="normal">292</span>
|
|
<span class="normal">293</span>
|
|
<span class="normal">294</span>
|
|
<span class="normal">295</span>
|
|
<span class="normal">296</span>
|
|
<span class="normal">297</span>
|
|
<span class="normal">298</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">square</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Squares the tensor element-wise.</span>
|
|
<span class="sd"> Equivalent to `self*self`.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).square().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span> <span class="o">*</span> <span class="bp">self</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.clamp" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">clamp</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.clamp" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">clamp</span><span class="p">(</span><span class="n">min_</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">max_</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Clips (clamps) the values in the tensor between <code class="language-python highlight"><span class="n">min_</span></code> and <code class="language-python highlight"><span class="n">max_</span></code> element-wise.
|
|
If <code class="language-python highlight"><span class="n">min_</span></code> is <code class="language-python highlight"><span class="kc">None</span></code>, there is no lower bound. If <code class="language-python highlight"><span class="n">max_</span></code> is None, there is no upper bound.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">clip</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">1.</span> <span class="o">-</span><span class="mf">1.</span> <span class="o">-</span><span class="mf">1.</span> <span class="mf">0.</span> <span class="mf">1.</span> <span class="mf">1.</span> <span class="mf">1.</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">300</span>
|
|
<span class="normal">301</span>
|
|
<span class="normal">302</span>
|
|
<span class="normal">303</span>
|
|
<span class="normal">304</span>
|
|
<span class="normal">305</span>
|
|
<span class="normal">306</span>
|
|
<span class="normal">307</span>
|
|
<span class="normal">308</span>
|
|
<span class="normal">309</span>
|
|
<span class="normal">310</span>
|
|
<span class="normal">311</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">clamp</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">min_</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">max_</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Clips (clamps) the values in the tensor between `min_` and `max_` element-wise.</span>
|
|
<span class="sd"> If `min_` is `None`, there is no lower bound. If `max_` is None, there is no upper bound.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).clip(-1, 1).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">if</span> <span class="n">min_</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">max_</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">"at least one of 'min_' or 'max_' must not be None"</span><span class="p">)</span>
|
|
<span class="n">ret</span> <span class="o">=</span> <span class="p">(</span><span class="bp">self</span> <span class="o"><</span> <span class="n">min_</span><span class="p">)</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">min_</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span> <span class="k">if</span> <span class="n">min_</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="bp">self</span>
|
|
<span class="k">return</span> <span class="p">(</span><span class="n">ret</span> <span class="o">></span> <span class="n">max_</span><span class="p">)</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">max_</span><span class="p">,</span> <span class="n">ret</span><span class="p">)</span> <span class="k">if</span> <span class="n">max_</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">ret</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.clip" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">clip</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.clip" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">clip</span><span class="p">(</span><span class="n">min_</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">max_</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Alias for <code class="language-python highlight"><span class="n">Tensor</span><span class="o">.</span><span class="n">clamp</span></code>.</p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">313</span>
|
|
<span class="normal">314</span>
|
|
<span class="normal">315</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">clip</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">min_</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">max_</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Alias for `Tensor.clamp`."""</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">clamp</span><span class="p">(</span><span class="n">min_</span><span class="p">,</span> <span class="n">max_</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.sign" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">sign</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.sign" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">sign</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Returns the sign of the tensor element-wise.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">sign</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">1.</span> <span class="o">-</span><span class="mf">1.</span> <span class="o">-</span><span class="mf">1.</span> <span class="mf">0.</span> <span class="mf">1.</span> <span class="mf">1.</span> <span class="mf">1.</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2910</span>
|
|
<span class="normal">2911</span>
|
|
<span class="normal">2912</span>
|
|
<span class="normal">2913</span>
|
|
<span class="normal">2914</span>
|
|
<span class="normal">2915</span>
|
|
<span class="normal">2916</span>
|
|
<span class="normal">2917</span>
|
|
<span class="normal">2918</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">sign</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the sign of the tensor element-wise.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).sign().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">ne</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span><span class="o">.</span><span class="n">where</span><span class="p">((</span><span class="bp">self</span><span class="o"><</span><span class="mi">0</span><span class="p">)</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">full_like</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span> <span class="bp">self</span><span class="o">.</span><span class="n">full_like</span><span class="p">(</span><span class="mi">1</span><span class="p">)),</span> <span class="bp">self</span><span class="o">.</span><span class="n">full_like</span><span class="p">(</span><span class="mi">0</span><span class="p">))</span> <span class="o">+</span> <span class="bp">self</span><span class="o">*</span><span class="mi">0</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.abs" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">abs</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.abs" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">abs</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes the absolute value of the tensor element-wise.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">abs</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="mf">3.</span> <span class="mf">2.</span> <span class="mf">1.</span> <span class="mf">0.</span> <span class="mf">1.</span> <span class="mf">2.</span> <span class="mf">3.</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2920</span>
|
|
<span class="normal">2921</span>
|
|
<span class="normal">2922</span>
|
|
<span class="normal">2923</span>
|
|
<span class="normal">2924</span>
|
|
<span class="normal">2925</span>
|
|
<span class="normal">2926</span>
|
|
<span class="normal">2927</span>
|
|
<span class="normal">2928</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">abs</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes the absolute value of the tensor element-wise.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).abs().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">sign</span><span class="p">()</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.reciprocal" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">reciprocal</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.reciprocal" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">reciprocal</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes <code class="language-python highlight"><span class="mi">1</span><span class="o">/</span><span class="n">x</span></code> element-wise.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">,</span> <span class="mf">4.</span><span class="p">])</span><span class="o">.</span><span class="n">reciprocal</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="mf">1.</span> <span class="mf">0.5</span> <span class="mf">0.3333</span> <span class="mf">0.25</span> <span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2930</span>
|
|
<span class="normal">2931</span>
|
|
<span class="normal">2932</span>
|
|
<span class="normal">2933</span>
|
|
<span class="normal">2934</span>
|
|
<span class="normal">2935</span>
|
|
<span class="normal">2936</span>
|
|
<span class="normal">2937</span>
|
|
<span class="normal">2938</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">reciprocal</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes `1/x` element-wise.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([1., 2., 3., 4.]).reciprocal().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">least_upper_float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">))</span><span class="o">.</span><span class="n">_apply_uop</span><span class="p">(</span><span class="n">UOp</span><span class="o">.</span><span class="n">reciprocal</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div><h2 id="unary-ops-activation">Unary Ops (activation)<a class="headerlink" href="#unary-ops-activation" title="Permanent link">¤</a></h2>
|
|
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.relu" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">relu</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.relu" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">relu</span><span class="p">()</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the Rectified Linear Unit (ReLU) function element-wise.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">relu</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="mf">0.</span> <span class="mf">0.</span> <span class="mf">0.</span> <span class="mf">0.</span> <span class="mf">1.</span> <span class="mf">2.</span> <span class="mf">3.</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">367</span>
|
|
<span class="normal">368</span>
|
|
<span class="normal">369</span>
|
|
<span class="normal">370</span>
|
|
<span class="normal">371</span>
|
|
<span class="normal">372</span>
|
|
<span class="normal">373</span>
|
|
<span class="normal">374</span>
|
|
<span class="normal">375</span>
|
|
<span class="normal">376</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">relu</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the Rectified Linear Unit (ReLU) function element-wise.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).relu().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="c1"># NOTE: if you write this as self.maximum(0) the gradient is wrong, passing through half when self is 0</span>
|
|
<span class="k">return</span> <span class="p">(</span><span class="bp">self</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.sigmoid" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">sigmoid</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.sigmoid" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">sigmoid</span><span class="p">()</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the Sigmoid function element-wise.</p>
|
|
<ul>
|
|
<li>Described: <a href="https://en.wikipedia.org/wiki/Sigmoid_function">https://en.wikipedia.org/wiki/Sigmoid_function</a></li>
|
|
</ul>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">sigmoid</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="mf">0.0474</span> <span class="mf">0.1192</span> <span class="mf">0.2689</span> <span class="mf">0.5</span> <span class="mf">0.7311</span> <span class="mf">0.8808</span> <span class="mf">0.9526</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">378</span>
|
|
<span class="normal">379</span>
|
|
<span class="normal">380</span>
|
|
<span class="normal">381</span>
|
|
<span class="normal">382</span>
|
|
<span class="normal">383</span>
|
|
<span class="normal">384</span>
|
|
<span class="normal">385</span>
|
|
<span class="normal">386</span>
|
|
<span class="normal">387</span>
|
|
<span class="normal">388</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">sigmoid</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the Sigmoid function element-wise.</span>
|
|
|
|
<span class="sd"> - Described: https://en.wikipedia.org/wiki/Sigmoid_function</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).sigmoid().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="p">(</span><span class="mi">1</span> <span class="o">+</span> <span class="p">(</span><span class="bp">self</span> <span class="o">*</span> <span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="o">/</span><span class="n">math</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="mi">2</span><span class="p">)))</span><span class="o">.</span><span class="n">exp2</span><span class="p">())</span><span class="o">.</span><span class="n">reciprocal</span><span class="p">()</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.logsigmoid" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">logsigmoid</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.logsigmoid" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">logsigmoid</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the LogSigmoid function element-wise.</p>
|
|
<ul>
|
|
<li>See: <a href="https://docs.pytorch.org/docs/stable/generated/torch.nn.functional.logsigmoid.html">https://docs.pytorch.org/docs/stable/generated/torch.nn.functional.logsigmoid.html</a></li>
|
|
</ul>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">logsigmoid</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">3.0486</span> <span class="o">-</span><span class="mf">2.1269</span> <span class="o">-</span><span class="mf">1.3133</span> <span class="o">-</span><span class="mf">0.6931</span> <span class="o">-</span><span class="mf">0.3133</span> <span class="o">-</span><span class="mf">0.1269</span> <span class="o">-</span><span class="mf">0.0486</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2799</span>
|
|
<span class="normal">2800</span>
|
|
<span class="normal">2801</span>
|
|
<span class="normal">2802</span>
|
|
<span class="normal">2803</span>
|
|
<span class="normal">2804</span>
|
|
<span class="normal">2805</span>
|
|
<span class="normal">2806</span>
|
|
<span class="normal">2807</span>
|
|
<span class="normal">2808</span>
|
|
<span class="normal">2809</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">logsigmoid</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the LogSigmoid function element-wise.</span>
|
|
|
|
<span class="sd"> - See: https://docs.pytorch.org/docs/stable/generated/torch.nn.functional.logsigmoid.html</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).logsigmoid().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="o">-</span><span class="p">(</span><span class="o">-</span><span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">softplus</span><span class="p">()</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.hardsigmoid" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">hardsigmoid</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.hardsigmoid" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">hardsigmoid</span><span class="p">(</span><span class="n">alpha</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#float">float</a></span> <span class="o">=</span> <span class="mi">1</span> <span class="o">/</span> <span class="mi">6</span><span class="p">,</span> <span class="n">beta</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#float">float</a></span> <span class="o">=</span> <span class="mf">0.5</span><span class="p">)</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the Hardsigmoid function element-wise.
|
|
NOTE: default <code class="language-python highlight"><span class="n">alpha</span></code> and <code class="language-python highlight"><span class="n">beta</span></code> values are taken from torch</p>
|
|
<ul>
|
|
<li>See: <a href="https://pytorch.org/docs/stable/generated/torch.nn.functional.hardsigmoid.html">https://pytorch.org/docs/stable/generated/torch.nn.functional.hardsigmoid.html</a></li>
|
|
</ul>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">hardsigmoid</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="mf">0.</span> <span class="mf">0.1667</span> <span class="mf">0.3333</span> <span class="mf">0.5</span> <span class="mf">0.6667</span> <span class="mf">0.8333</span> <span class="mf">1.</span> <span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">414</span>
|
|
<span class="normal">415</span>
|
|
<span class="normal">416</span>
|
|
<span class="normal">417</span>
|
|
<span class="normal">418</span>
|
|
<span class="normal">419</span>
|
|
<span class="normal">420</span>
|
|
<span class="normal">421</span>
|
|
<span class="normal">422</span>
|
|
<span class="normal">423</span>
|
|
<span class="normal">424</span>
|
|
<span class="normal">425</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">hardsigmoid</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alpha</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mi">1</span><span class="o">/</span><span class="mi">6</span><span class="p">,</span> <span class="n">beta</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mf">0.5</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the Hardsigmoid function element-wise.</span>
|
|
<span class="sd"> NOTE: default `alpha` and `beta` values are taken from torch</span>
|
|
|
|
<span class="sd"> - See: https://pytorch.org/docs/stable/generated/torch.nn.functional.hardsigmoid.html</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).hardsigmoid().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="p">(</span><span class="n">alpha</span> <span class="o">*</span> <span class="bp">self</span> <span class="o">+</span> <span class="n">beta</span><span class="p">)</span><span class="o">.</span><span class="n">relu</span><span class="p">()</span> <span class="o">-</span> <span class="p">(</span><span class="n">alpha</span> <span class="o">*</span> <span class="bp">self</span> <span class="o">+</span> <span class="n">beta</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">relu</span><span class="p">()</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.elu" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">elu</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.elu" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">elu</span><span class="p">(</span><span class="n">alpha</span><span class="o">=</span><span class="mf">1.0</span><span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the Exponential Linear Unit (ELU) function element-wise.</p>
|
|
<ul>
|
|
<li>Paper: <a href="https://arxiv.org/abs/1511.07289v5">https://arxiv.org/abs/1511.07289v5</a></li>
|
|
</ul>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">elu</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">0.9502</span> <span class="o">-</span><span class="mf">0.8647</span> <span class="o">-</span><span class="mf">0.6321</span> <span class="mf">0.</span> <span class="mf">1.</span> <span class="mf">2.</span> <span class="mf">3.</span> <span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2942</span>
|
|
<span class="normal">2943</span>
|
|
<span class="normal">2944</span>
|
|
<span class="normal">2945</span>
|
|
<span class="normal">2946</span>
|
|
<span class="normal">2947</span>
|
|
<span class="normal">2948</span>
|
|
<span class="normal">2949</span>
|
|
<span class="normal">2950</span>
|
|
<span class="normal">2951</span>
|
|
<span class="normal">2952</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">elu</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">1.0</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the Exponential Linear Unit (ELU) function element-wise.</span>
|
|
|
|
<span class="sd"> - Paper: https://arxiv.org/abs/1511.07289v5</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).elu().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">relu</span><span class="p">()</span> <span class="o">-</span> <span class="n">alpha</span><span class="o">*</span><span class="p">(</span><span class="mi">1</span><span class="o">-</span><span class="bp">self</span><span class="o">.</span><span class="n">exp</span><span class="p">())</span><span class="o">.</span><span class="n">relu</span><span class="p">()</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.celu" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">celu</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.celu" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">celu</span><span class="p">(</span><span class="n">alpha</span><span class="o">=</span><span class="mf">1.0</span><span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the Continuously differentiable Exponential Linear Unit (CELU) function element-wise.</p>
|
|
<ul>
|
|
<li>Paper: <a href="https://arxiv.org/abs/1704.07483">https://arxiv.org/abs/1704.07483</a></li>
|
|
</ul>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">celu</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">0.9502</span> <span class="o">-</span><span class="mf">0.8647</span> <span class="o">-</span><span class="mf">0.6321</span> <span class="mf">0.</span> <span class="mf">1.</span> <span class="mf">2.</span> <span class="mf">3.</span> <span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2954</span>
|
|
<span class="normal">2955</span>
|
|
<span class="normal">2956</span>
|
|
<span class="normal">2957</span>
|
|
<span class="normal">2958</span>
|
|
<span class="normal">2959</span>
|
|
<span class="normal">2960</span>
|
|
<span class="normal">2961</span>
|
|
<span class="normal">2962</span>
|
|
<span class="normal">2963</span>
|
|
<span class="normal">2964</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">celu</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">1.0</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the Continuously differentiable Exponential Linear Unit (CELU) function element-wise.</span>
|
|
|
|
<span class="sd"> - Paper: https://arxiv.org/abs/1704.07483</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).celu().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">maximum</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="n">alpha</span> <span class="o">*</span> <span class="p">((</span><span class="bp">self</span> <span class="o">/</span> <span class="n">alpha</span><span class="p">)</span><span class="o">.</span><span class="n">exp</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span><span class="p">))</span><span class="o">.</span><span class="n">minimum</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.selu" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">selu</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.selu" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">selu</span><span class="p">(</span><span class="n">alpha</span><span class="o">=</span><span class="mf">1.67326</span><span class="p">,</span> <span class="n">gamma</span><span class="o">=</span><span class="mf">1.0507</span><span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the Scaled Exponential Linear Unit (SELU) function element-wise.</p>
|
|
<ul>
|
|
<li>Paper: <a href="https://arxiv.org/abs/1706.02515v5">https://arxiv.org/abs/1706.02515v5</a></li>
|
|
</ul>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">selu</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">1.6706</span> <span class="o">-</span><span class="mf">1.5202</span> <span class="o">-</span><span class="mf">1.1113</span> <span class="mf">0.</span> <span class="mf">1.0507</span> <span class="mf">2.1014</span> <span class="mf">3.1521</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2966</span>
|
|
<span class="normal">2967</span>
|
|
<span class="normal">2968</span>
|
|
<span class="normal">2969</span>
|
|
<span class="normal">2970</span>
|
|
<span class="normal">2971</span>
|
|
<span class="normal">2972</span>
|
|
<span class="normal">2973</span>
|
|
<span class="normal">2974</span>
|
|
<span class="normal">2975</span>
|
|
<span class="normal">2976</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">selu</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">1.67326</span><span class="p">,</span> <span class="n">gamma</span><span class="o">=</span><span class="mf">1.0507</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the Scaled Exponential Linear Unit (SELU) function element-wise.</span>
|
|
|
|
<span class="sd"> - Paper: https://arxiv.org/abs/1706.02515v5</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).selu().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">gamma</span> <span class="o">*</span> <span class="p">(</span><span class="bp">self</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">)</span><span class="o">.</span><span class="n">detach</span><span class="p">()</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alpha</span> <span class="o">*</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">exp</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span><span class="p">))</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.swish" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">swish</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.swish" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">swish</span><span class="p">()</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>See <code class="language-python highlight"><span class="o">.</span><span class="n">silu</span><span class="p">()</span></code></p>
|
|
<ul>
|
|
<li>Paper: <a href="https://arxiv.org/abs/1710.05941v1">https://arxiv.org/abs/1710.05941v1</a></li>
|
|
</ul>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">swish</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">0.1423</span> <span class="o">-</span><span class="mf">0.2384</span> <span class="o">-</span><span class="mf">0.2689</span> <span class="mf">0.</span> <span class="mf">0.7311</span> <span class="mf">1.7616</span> <span class="mf">2.8577</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">484</span>
|
|
<span class="normal">485</span>
|
|
<span class="normal">486</span>
|
|
<span class="normal">487</span>
|
|
<span class="normal">488</span>
|
|
<span class="normal">489</span>
|
|
<span class="normal">490</span>
|
|
<span class="normal">491</span>
|
|
<span class="normal">492</span>
|
|
<span class="normal">493</span>
|
|
<span class="normal">494</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">swish</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> See `.silu()`</span>
|
|
|
|
<span class="sd"> - Paper: https://arxiv.org/abs/1710.05941v1</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).swish().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">sigmoid</span><span class="p">()</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.silu" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">silu</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.silu" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">silu</span><span class="p">()</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the Sigmoid Linear Unit (SiLU) function element-wise.</p>
|
|
<ul>
|
|
<li>Paper: <a href="https://arxiv.org/abs/1606.08415">https://arxiv.org/abs/1606.08415</a></li>
|
|
</ul>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">silu</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">0.1423</span> <span class="o">-</span><span class="mf">0.2384</span> <span class="o">-</span><span class="mf">0.2689</span> <span class="mf">0.</span> <span class="mf">0.7311</span> <span class="mf">1.7616</span> <span class="mf">2.8577</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">496</span>
|
|
<span class="normal">497</span>
|
|
<span class="normal">498</span>
|
|
<span class="normal">499</span>
|
|
<span class="normal">500</span>
|
|
<span class="normal">501</span>
|
|
<span class="normal">502</span>
|
|
<span class="normal">503</span>
|
|
<span class="normal">504</span>
|
|
<span class="normal">505</span>
|
|
<span class="normal">506</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">silu</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the Sigmoid Linear Unit (SiLU) function element-wise.</span>
|
|
|
|
<span class="sd"> - Paper: https://arxiv.org/abs/1606.08415</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).silu().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">swish</span><span class="p">()</span> <span class="c1"># The SiLU function is also known as the swish function.</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.relu6" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">relu6</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.relu6" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">relu6</span><span class="p">()</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the ReLU6 function element-wise.</p>
|
|
<ul>
|
|
<li>Paper: <a href="https://arxiv.org/abs/1704.04861v1">https://arxiv.org/abs/1704.04861v1</a></li>
|
|
</ul>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">9.</span><span class="p">,</span> <span class="o">-</span><span class="mf">6.</span><span class="p">,</span> <span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">,</span> <span class="mf">6.</span><span class="p">,</span> <span class="mf">9.</span><span class="p">])</span><span class="o">.</span><span class="n">relu6</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="mf">0.</span> <span class="mf">0.</span> <span class="mf">0.</span> <span class="mf">0.</span> <span class="mf">3.</span> <span class="mf">6.</span> <span class="mf">6.</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">390</span>
|
|
<span class="normal">391</span>
|
|
<span class="normal">392</span>
|
|
<span class="normal">393</span>
|
|
<span class="normal">394</span>
|
|
<span class="normal">395</span>
|
|
<span class="normal">396</span>
|
|
<span class="normal">397</span>
|
|
<span class="normal">398</span>
|
|
<span class="normal">399</span>
|
|
<span class="normal">400</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">relu6</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the ReLU6 function element-wise.</span>
|
|
|
|
<span class="sd"> - Paper: https://arxiv.org/abs/1704.04861v1</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-9., -6., -3., 0., 3., 6., 9.]).relu6().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">relu</span><span class="p">()</span> <span class="o">-</span> <span class="p">(</span><span class="bp">self</span><span class="o">-</span><span class="mi">6</span><span class="p">)</span><span class="o">.</span><span class="n">relu</span><span class="p">()</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.hardswish" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">hardswish</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.hardswish" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">hardswish</span><span class="p">()</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the Hardswish function element-wise.</p>
|
|
<ul>
|
|
<li>Paper: <a href="https://arxiv.org/abs/1905.02244v5">https://arxiv.org/abs/1905.02244v5</a></li>
|
|
</ul>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">hardswish</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">0.</span> <span class="o">-</span><span class="mf">0.3333</span> <span class="o">-</span><span class="mf">0.3333</span> <span class="mf">0.</span> <span class="mf">0.6667</span> <span class="mf">1.6667</span> <span class="mf">3.</span> <span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">402</span>
|
|
<span class="normal">403</span>
|
|
<span class="normal">404</span>
|
|
<span class="normal">405</span>
|
|
<span class="normal">406</span>
|
|
<span class="normal">407</span>
|
|
<span class="normal">408</span>
|
|
<span class="normal">409</span>
|
|
<span class="normal">410</span>
|
|
<span class="normal">411</span>
|
|
<span class="normal">412</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">hardswish</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the Hardswish function element-wise.</span>
|
|
|
|
<span class="sd"> - Paper: https://arxiv.org/abs/1905.02244v5</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).hardswish().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span> <span class="o">*</span> <span class="p">(</span><span class="bp">self</span><span class="o">+</span><span class="mi">3</span><span class="p">)</span><span class="o">.</span><span class="n">relu6</span><span class="p">()</span> <span class="o">*</span> <span class="p">(</span><span class="mi">1</span><span class="o">/</span><span class="mi">6</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.tanh" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">tanh</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.tanh" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">tanh</span><span class="p">()</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the Hyperbolic Tangent (tanh) function element-wise.</p>
|
|
<ul>
|
|
<li>Described: <a href="https://en.wikipedia.org/wiki/Hyperbolic_functions#Tanh">https://en.wikipedia.org/wiki/Hyperbolic_functions#Tanh</a></li>
|
|
</ul>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">tanh</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">0.9951</span> <span class="o">-</span><span class="mf">0.964</span> <span class="o">-</span><span class="mf">0.7616</span> <span class="mf">0.</span> <span class="mf">0.7616</span> <span class="mf">0.964</span> <span class="mf">0.9951</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">450</span>
|
|
<span class="normal">451</span>
|
|
<span class="normal">452</span>
|
|
<span class="normal">453</span>
|
|
<span class="normal">454</span>
|
|
<span class="normal">455</span>
|
|
<span class="normal">456</span>
|
|
<span class="normal">457</span>
|
|
<span class="normal">458</span>
|
|
<span class="normal">459</span>
|
|
<span class="normal">460</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">tanh</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the Hyperbolic Tangent (tanh) function element-wise.</span>
|
|
|
|
<span class="sd"> - Described: https://en.wikipedia.org/wiki/Hyperbolic_functions#Tanh</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).tanh().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="mf">2.0</span> <span class="o">*</span> <span class="p">((</span><span class="mf">2.0</span> <span class="o">*</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">sigmoid</span><span class="p">())</span> <span class="o">-</span> <span class="mf">1.0</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.sinh" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">sinh</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.sinh" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">sinh</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the Hyperbolic Sine (sinh) function element-wise.</p>
|
|
<ul>
|
|
<li>Described: <a href="https://en.wikipedia.org/wiki/Hyperbolic_functions#Sinh">https://en.wikipedia.org/wiki/Hyperbolic_functions#Sinh</a></li>
|
|
</ul>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">sinh</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">10.0179</span> <span class="o">-</span><span class="mf">3.6269</span> <span class="o">-</span><span class="mf">1.1752</span> <span class="mf">0.</span> <span class="mf">1.1752</span> <span class="mf">3.6269</span> <span class="mf">10.0179</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2978</span>
|
|
<span class="normal">2979</span>
|
|
<span class="normal">2980</span>
|
|
<span class="normal">2981</span>
|
|
<span class="normal">2982</span>
|
|
<span class="normal">2983</span>
|
|
<span class="normal">2984</span>
|
|
<span class="normal">2985</span>
|
|
<span class="normal">2986</span>
|
|
<span class="normal">2987</span>
|
|
<span class="normal">2988</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">sinh</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the Hyperbolic Sine (sinh) function element-wise.</span>
|
|
|
|
<span class="sd"> - Described: https://en.wikipedia.org/wiki/Hyperbolic_functions#Sinh</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).sinh().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">exp</span><span class="p">()</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">neg</span><span class="p">()</span><span class="o">.</span><span class="n">exp</span><span class="p">())</span> <span class="o">/</span> <span class="mi">2</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.cosh" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">cosh</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.cosh" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">cosh</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the Hyperbolic Cosine (cosh) function element-wise.</p>
|
|
<ul>
|
|
<li>Described: <a href="https://en.wikipedia.org/wiki/Hyperbolic_functions#Cosh">https://en.wikipedia.org/wiki/Hyperbolic_functions#Cosh</a></li>
|
|
</ul>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">cosh</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="mf">10.0677</span> <span class="mf">3.7622</span> <span class="mf">1.5431</span> <span class="mf">1.</span> <span class="mf">1.5431</span> <span class="mf">3.7622</span> <span class="mf">10.0677</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2990</span>
|
|
<span class="normal">2991</span>
|
|
<span class="normal">2992</span>
|
|
<span class="normal">2993</span>
|
|
<span class="normal">2994</span>
|
|
<span class="normal">2995</span>
|
|
<span class="normal">2996</span>
|
|
<span class="normal">2997</span>
|
|
<span class="normal">2998</span>
|
|
<span class="normal">2999</span>
|
|
<span class="normal">3000</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">cosh</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the Hyperbolic Cosine (cosh) function element-wise.</span>
|
|
|
|
<span class="sd"> - Described: https://en.wikipedia.org/wiki/Hyperbolic_functions#Cosh</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).cosh().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">exp</span><span class="p">()</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">neg</span><span class="p">()</span><span class="o">.</span><span class="n">exp</span><span class="p">())</span> <span class="o">/</span> <span class="mi">2</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.atanh" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">atanh</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.atanh" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">atanh</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the Inverse Hyperbolic Tangent (atanh) function element-wise.</p>
|
|
<ul>
|
|
<li>Described: <a href="https://en.wikipedia.org/wiki/Inverse_hyperbolic_functions#atanh">https://en.wikipedia.org/wiki/Inverse_hyperbolic_functions#atanh</a></li>
|
|
</ul>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">0.9</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.6</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.3</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">0.3</span><span class="p">,</span> <span class="mf">0.6</span><span class="p">,</span> <span class="mf">0.9</span><span class="p">])</span><span class="o">.</span><span class="n">atanh</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">1.4722</span> <span class="o">-</span><span class="mf">0.6931</span> <span class="o">-</span><span class="mf">0.3095</span> <span class="mf">0.</span> <span class="mf">0.3095</span> <span class="mf">0.6931</span> <span class="mf">1.4722</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3002</span>
|
|
<span class="normal">3003</span>
|
|
<span class="normal">3004</span>
|
|
<span class="normal">3005</span>
|
|
<span class="normal">3006</span>
|
|
<span class="normal">3007</span>
|
|
<span class="normal">3008</span>
|
|
<span class="normal">3009</span>
|
|
<span class="normal">3010</span>
|
|
<span class="normal">3011</span>
|
|
<span class="normal">3012</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">atanh</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the Inverse Hyperbolic Tangent (atanh) function element-wise.</span>
|
|
|
|
<span class="sd"> - Described: https://en.wikipedia.org/wiki/Inverse_hyperbolic_functions#atanh</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-0.9, -0.6, -0.3, 0., 0.3, 0.6, 0.9]).atanh().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="p">((</span><span class="mi">1</span> <span class="o">+</span> <span class="bp">self</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="bp">self</span><span class="p">))</span><span class="o">.</span><span class="n">log</span><span class="p">()</span> <span class="o">/</span> <span class="mi">2</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.asinh" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">asinh</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.asinh" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">asinh</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the Inverse Hyperbolic Sine (asinh) function element-wise.</p>
|
|
<ul>
|
|
<li>Described: <a href="https://en.wikipedia.org/wiki/Inverse_hyperbolic_functions#asinh">https://en.wikipedia.org/wiki/Inverse_hyperbolic_functions#asinh</a></li>
|
|
</ul>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">asinh</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">1.8184</span> <span class="o">-</span><span class="mf">1.4436</span> <span class="o">-</span><span class="mf">0.8814</span> <span class="mf">0.</span> <span class="mf">0.8814</span> <span class="mf">1.4436</span> <span class="mf">1.8184</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3014</span>
|
|
<span class="normal">3015</span>
|
|
<span class="normal">3016</span>
|
|
<span class="normal">3017</span>
|
|
<span class="normal">3018</span>
|
|
<span class="normal">3019</span>
|
|
<span class="normal">3020</span>
|
|
<span class="normal">3021</span>
|
|
<span class="normal">3022</span>
|
|
<span class="normal">3023</span>
|
|
<span class="normal">3024</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">asinh</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the Inverse Hyperbolic Sine (asinh) function element-wise.</span>
|
|
|
|
<span class="sd"> - Described: https://en.wikipedia.org/wiki/Inverse_hyperbolic_functions#asinh</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).asinh().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="p">(</span><span class="bp">self</span> <span class="o">+</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">square</span><span class="p">()</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">sqrt</span><span class="p">())</span><span class="o">.</span><span class="n">log</span><span class="p">()</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.acosh" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">acosh</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.acosh" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">acosh</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the Inverse Hyperbolic Cosine (acosh) function element-wise.</p>
|
|
<ul>
|
|
<li>Described: <a href="https://en.wikipedia.org/wiki/Inverse_hyperbolic_functions#acosh">https://en.wikipedia.org/wiki/Inverse_hyperbolic_functions#acosh</a></li>
|
|
</ul>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">acosh</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span> <span class="n">nan</span> <span class="n">nan</span> <span class="n">nan</span> <span class="n">nan</span> <span class="mf">0.</span> <span class="mf">1.317</span> <span class="mf">1.7627</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3026</span>
|
|
<span class="normal">3027</span>
|
|
<span class="normal">3028</span>
|
|
<span class="normal">3029</span>
|
|
<span class="normal">3030</span>
|
|
<span class="normal">3031</span>
|
|
<span class="normal">3032</span>
|
|
<span class="normal">3033</span>
|
|
<span class="normal">3034</span>
|
|
<span class="normal">3035</span>
|
|
<span class="normal">3036</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">acosh</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the Inverse Hyperbolic Cosine (acosh) function element-wise.</span>
|
|
|
|
<span class="sd"> - Described: https://en.wikipedia.org/wiki/Inverse_hyperbolic_functions#acosh</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).acosh().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="p">(</span><span class="bp">self</span> <span class="o">+</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">square</span><span class="p">()</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">sqrt</span><span class="p">())</span><span class="o">.</span><span class="n">log</span><span class="p">()</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.hardtanh" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">hardtanh</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.hardtanh" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">hardtanh</span><span class="p">(</span><span class="n">min_val</span><span class="o">=-</span><span class="mi">1</span><span class="p">,</span> <span class="n">max_val</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the Hardtanh function element-wise.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">1.5</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.0</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.5</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">])</span><span class="o">.</span><span class="n">hardtanh</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">1.</span> <span class="o">-</span><span class="mf">1.</span> <span class="o">-</span><span class="mf">0.5</span> <span class="mf">0.</span> <span class="mf">0.5</span> <span class="mf">1.</span> <span class="mf">1.</span> <span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">427</span>
|
|
<span class="normal">428</span>
|
|
<span class="normal">429</span>
|
|
<span class="normal">430</span>
|
|
<span class="normal">431</span>
|
|
<span class="normal">432</span>
|
|
<span class="normal">433</span>
|
|
<span class="normal">434</span>
|
|
<span class="normal">435</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">hardtanh</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">min_val</span><span class="o">=-</span><span class="mi">1</span><span class="p">,</span> <span class="n">max_val</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the Hardtanh function element-wise.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-1.5, -1.0, -0.5, 0., 0.5, 1.0, 1.5]).hardtanh().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">clip</span><span class="p">(</span><span class="n">min_val</span><span class="p">,</span> <span class="n">max_val</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.erf" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">erf</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.erf" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">erf</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies error function element-wise.</p>
|
|
<ul>
|
|
<li>Described: <a href="https://en.wikipedia.org/wiki/Error_function">https://en.wikipedia.org/wiki/Error_function</a></li>
|
|
</ul>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">1.5</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.0</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.5</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">])</span><span class="o">.</span><span class="n">erf</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">0.9661</span> <span class="o">-</span><span class="mf">0.8427</span> <span class="o">-</span><span class="mf">0.5205</span> <span class="mf">0.</span> <span class="mf">0.5205</span> <span class="mf">0.8427</span> <span class="mf">0.9661</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3038</span>
|
|
<span class="normal">3039</span>
|
|
<span class="normal">3040</span>
|
|
<span class="normal">3041</span>
|
|
<span class="normal">3042</span>
|
|
<span class="normal">3043</span>
|
|
<span class="normal">3044</span>
|
|
<span class="normal">3045</span>
|
|
<span class="normal">3046</span>
|
|
<span class="normal">3047</span>
|
|
<span class="normal">3048</span>
|
|
<span class="normal">3049</span>
|
|
<span class="normal">3050</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">erf</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies error function element-wise.</span>
|
|
|
|
<span class="sd"> - Described: https://en.wikipedia.org/wiki/Error_function</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-1.5, -1.0, -0.5, 0., 0.5, 1.0, 1.5]).erf().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="c1"># https://personal.math.ubc.ca/~cbm/aands/page_299.htm 7.1.26</span>
|
|
<span class="n">t</span> <span class="o">=</span> <span class="mf">1.0</span> <span class="o">/</span> <span class="p">(</span><span class="mf">1.0</span> <span class="o">+</span> <span class="mf">0.3275911</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">abs</span><span class="p">())</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sign</span><span class="p">()</span> <span class="o">*</span> <span class="p">(</span><span class="mf">1.0</span> <span class="o">-</span> <span class="n">t</span> <span class="o">*</span> <span class="n">polyN</span><span class="p">(</span><span class="n">t</span><span class="p">,</span> <span class="p">[</span><span class="mf">1.061405429</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.453152027</span><span class="p">,</span> <span class="mf">1.421413741</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.284496736</span><span class="p">,</span> <span class="mf">0.254829592</span><span class="p">])</span> <span class="o">*</span> <span class="p">(</span><span class="o">-</span><span class="bp">self</span><span class="o">.</span><span class="n">square</span><span class="p">())</span><span class="o">.</span><span class="n">exp</span><span class="p">())</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.gelu" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">gelu</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.gelu" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">gelu</span><span class="p">()</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the Gaussian Error Linear Unit (GELU) function element-wise.</p>
|
|
<ul>
|
|
<li>Paper: <a href="https://arxiv.org/abs/1606.08415v5">https://arxiv.org/abs/1606.08415v5</a></li>
|
|
</ul>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">gelu</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">0.0036</span> <span class="o">-</span><span class="mf">0.0454</span> <span class="o">-</span><span class="mf">0.1588</span> <span class="mf">0.</span> <span class="mf">0.8412</span> <span class="mf">1.9546</span> <span class="mf">2.9964</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">472</span>
|
|
<span class="normal">473</span>
|
|
<span class="normal">474</span>
|
|
<span class="normal">475</span>
|
|
<span class="normal">476</span>
|
|
<span class="normal">477</span>
|
|
<span class="normal">478</span>
|
|
<span class="normal">479</span>
|
|
<span class="normal">480</span>
|
|
<span class="normal">481</span>
|
|
<span class="normal">482</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">gelu</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the Gaussian Error Linear Unit (GELU) function element-wise.</span>
|
|
|
|
<span class="sd"> - Paper: https://arxiv.org/abs/1606.08415v5</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).gelu().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="bp">self</span> <span class="o">*</span> <span class="p">(</span><span class="mi">1</span> <span class="o">+</span> <span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="mi">2</span> <span class="o">/</span> <span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="p">)</span> <span class="o">*</span> <span class="p">(</span><span class="bp">self</span> <span class="o">+</span> <span class="mf">0.044715</span> <span class="o">*</span> <span class="bp">self</span> <span class="o">**</span> <span class="mi">3</span><span class="p">))</span><span class="o">.</span><span class="n">tanh</span><span class="p">())</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.quick_gelu" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">quick_gelu</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.quick_gelu" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">quick_gelu</span><span class="p">()</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the Sigmoid GELU approximation element-wise.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">quick_gelu</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">0.0181</span> <span class="o">-</span><span class="mf">0.0643</span> <span class="o">-</span><span class="mf">0.1542</span> <span class="mf">0.</span> <span class="mf">0.8458</span> <span class="mf">1.9357</span> <span class="mf">2.9819</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">462</span>
|
|
<span class="normal">463</span>
|
|
<span class="normal">464</span>
|
|
<span class="normal">465</span>
|
|
<span class="normal">466</span>
|
|
<span class="normal">467</span>
|
|
<span class="normal">468</span>
|
|
<span class="normal">469</span>
|
|
<span class="normal">470</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">quick_gelu</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the Sigmoid GELU approximation element-wise.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).quick_gelu().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span> <span class="o">*</span> <span class="p">(</span><span class="bp">self</span> <span class="o">*</span> <span class="mf">1.702</span><span class="p">)</span><span class="o">.</span><span class="n">sigmoid</span><span class="p">()</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.leaky_relu" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">leaky_relu</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.leaky_relu" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">leaky_relu</span><span class="p">(</span><span class="n">neg_slope</span><span class="o">=</span><span class="mf">0.01</span><span class="p">)</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the Leaky ReLU function element-wise.</p>
|
|
<p><div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">leaky_relu</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">0.03</span> <span class="o">-</span><span class="mf">0.02</span> <span class="o">-</span><span class="mf">0.01</span> <span class="mf">0.</span> <span class="mf">1.</span> <span class="mf">2.</span> <span class="mf">3.</span> <span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">leaky_relu</span><span class="p">(</span><span class="n">neg_slope</span><span class="o">=</span><span class="mf">0.42</span><span class="p">)</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">1.26</span> <span class="o">-</span><span class="mf">0.84</span> <span class="o">-</span><span class="mf">0.42</span> <span class="mf">0.</span> <span class="mf">1.</span> <span class="mf">2.</span> <span class="mf">3.</span> <span class="p">]</span>
|
|
</code></pre></div></p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">437</span>
|
|
<span class="normal">438</span>
|
|
<span class="normal">439</span>
|
|
<span class="normal">440</span>
|
|
<span class="normal">441</span>
|
|
<span class="normal">442</span>
|
|
<span class="normal">443</span>
|
|
<span class="normal">444</span>
|
|
<span class="normal">445</span>
|
|
<span class="normal">446</span>
|
|
<span class="normal">447</span>
|
|
<span class="normal">448</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">leaky_relu</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">neg_slope</span><span class="o">=</span><span class="mf">0.01</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the Leaky ReLU function element-wise.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).leaky_relu().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).leaky_relu(neg_slope=0.42).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="p">(</span><span class="bp">self</span> <span class="o"><</span> <span class="mi">0</span><span class="p">)</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">neg_slope</span><span class="o">*</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.mish" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">mish</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.mish" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">mish</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the Mish function element-wise.</p>
|
|
<ul>
|
|
<li>Paper: <a href="https://arxiv.org/abs/1908.08681v3">https://arxiv.org/abs/1908.08681v3</a></li>
|
|
</ul>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">mish</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">0.1456</span> <span class="o">-</span><span class="mf">0.2525</span> <span class="o">-</span><span class="mf">0.3034</span> <span class="mf">0.</span> <span class="mf">0.8651</span> <span class="mf">1.944</span> <span class="mf">2.9865</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3052</span>
|
|
<span class="normal">3053</span>
|
|
<span class="normal">3054</span>
|
|
<span class="normal">3055</span>
|
|
<span class="normal">3056</span>
|
|
<span class="normal">3057</span>
|
|
<span class="normal">3058</span>
|
|
<span class="normal">3059</span>
|
|
<span class="normal">3060</span>
|
|
<span class="normal">3061</span>
|
|
<span class="normal">3062</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">mish</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the Mish function element-wise.</span>
|
|
|
|
<span class="sd"> - Paper: https://arxiv.org/abs/1908.08681v3</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).mish().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">softplus</span><span class="p">()</span><span class="o">.</span><span class="n">tanh</span><span class="p">()</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.softplus" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">softplus</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.softplus" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">softplus</span><span class="p">(</span><span class="n">beta</span><span class="o">=</span><span class="mf">1.0</span><span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the Softplus function element-wise.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">softplus</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="mf">0.0486</span> <span class="mf">0.1269</span> <span class="mf">0.3133</span> <span class="mf">0.6931</span> <span class="mf">1.3133</span> <span class="mf">2.1269</span> <span class="mf">3.0486</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3064</span>
|
|
<span class="normal">3065</span>
|
|
<span class="normal">3066</span>
|
|
<span class="normal">3067</span>
|
|
<span class="normal">3068</span>
|
|
<span class="normal">3069</span>
|
|
<span class="normal">3070</span>
|
|
<span class="normal">3071</span>
|
|
<span class="normal">3072</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">softplus</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">beta</span><span class="o">=</span><span class="mf">1.0</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the Softplus function element-wise.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).softplus().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="p">(</span><span class="mi">1</span><span class="o">/</span><span class="n">beta</span><span class="p">)</span> <span class="o">*</span> <span class="p">(</span><span class="bp">self</span><span class="o">*</span><span class="n">beta</span><span class="p">)</span><span class="o">.</span><span class="n">logaddexp</span><span class="p">(</span><span class="mf">0.0</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.softsign" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">softsign</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.softsign" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">softsign</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Applies the Softsign function element-wise.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">3.</span><span class="p">,</span> <span class="o">-</span><span class="mf">2.</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">1.</span><span class="p">,</span> <span class="mf">2.</span><span class="p">,</span> <span class="mf">3.</span><span class="p">])</span><span class="o">.</span><span class="n">softsign</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">0.75</span> <span class="o">-</span><span class="mf">0.6667</span> <span class="o">-</span><span class="mf">0.5</span> <span class="mf">0.</span> <span class="mf">0.5</span> <span class="mf">0.6667</span> <span class="mf">0.75</span> <span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3074</span>
|
|
<span class="normal">3075</span>
|
|
<span class="normal">3076</span>
|
|
<span class="normal">3077</span>
|
|
<span class="normal">3078</span>
|
|
<span class="normal">3079</span>
|
|
<span class="normal">3080</span>
|
|
<span class="normal">3081</span>
|
|
<span class="normal">3082</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">softsign</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Applies the Softsign function element-wise.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-3., -2., -1., 0., 1., 2., 3.]).softsign().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span> <span class="o">/</span> <span class="p">(</span><span class="mi">1</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">abs</span><span class="p">())</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div><h2 id="elementwise-ops-broadcasted">Elementwise Ops (broadcasted)<a class="headerlink" href="#elementwise-ops-broadcasted" title="Permanent link">¤</a></h2>
|
|
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.add" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">add</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.add" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">add</span><span class="p">(</span><span class="n">x</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code> <span class="doc doc-object-name doc-attribute-name">ConstType</span>
|
|
|
|
|
|
<span class="doc doc-labels">
|
|
<small class="doc doc-label doc-label-module-attribute"><code>module-attribute</code></small>
|
|
</span> (<code>tinygrad.dtype.ConstType</code>)" href="../../dtypes/#tinygrad.dtype.ConstType">ConstType</a></span><span class="p">,</span> <span class="n">reverse</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Adds <code class="language-python highlight"><span class="bp">self</span></code> and <code class="language-python highlight"><span class="n">x</span></code>.
|
|
Equivalent to <code class="language-python highlight"><span class="bp">self</span> <span class="o">+</span> <span class="n">x</span></code>.
|
|
Supports broadcasting to a common shape, type promotion, and integer, float, boolean inputs.
|
|
<div class="language-python highlight"><pre><span></span><code><span class="n">Tensor</span><span class="o">.</span><span class="n">manual_seed</span><span class="p">(</span><span class="mi">42</span><span class="p">)</span>
|
|
<span class="n">t</span> <span class="o">=</span> <span class="n">Tensor</span><span class="o">.</span><span class="n">randn</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">0.5144</span> <span class="mf">1.085</span> <span class="mf">0.9089</span> <span class="o">-</span><span class="mf">0.0841</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="mi">20</span><span class="p">)</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="mf">19.4856</span> <span class="mf">21.085</span> <span class="mf">20.9089</span> <span class="mf">19.9159</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([[</span><span class="mf">2.0</span><span class="p">],</span> <span class="p">[</span><span class="mf">3.5</span><span class="p">]]))</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[[</span><span class="mf">1.4856</span> <span class="mf">3.085</span> <span class="mf">2.9089</span> <span class="mf">1.9159</span><span class="p">]</span>
|
|
<span class="p">[</span><span class="mf">2.9856</span> <span class="mf">4.585</span> <span class="mf">4.4089</span> <span class="mf">3.4159</span><span class="p">]]</span>
|
|
</code></pre></div></p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">37</span>
|
|
<span class="normal">38</span>
|
|
<span class="normal">39</span>
|
|
<span class="normal">40</span>
|
|
<span class="normal">41</span>
|
|
<span class="normal">42</span>
|
|
<span class="normal">43</span>
|
|
<span class="normal">44</span>
|
|
<span class="normal">45</span>
|
|
<span class="normal">46</span>
|
|
<span class="normal">47</span>
|
|
<span class="normal">48</span>
|
|
<span class="normal">49</span>
|
|
<span class="normal">50</span>
|
|
<span class="normal">51</span>
|
|
<span class="normal">52</span>
|
|
<span class="normal">53</span>
|
|
<span class="normal">54</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">:</span> <span class="n">Self</span> <span class="o">|</span> <span class="n">ConstType</span><span class="p">,</span> <span class="n">reverse</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Adds `self` and `x`.</span>
|
|
<span class="sd"> Equivalent to `self + x`.</span>
|
|
<span class="sd"> Supports broadcasting to a common shape, type promotion, and integer, float, boolean inputs.</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> Tensor.manual_seed(42)</span>
|
|
<span class="sd"> t = Tensor.randn(4)</span>
|
|
<span class="sd"> print(t.numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(t.add(20).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(t.add(Tensor([[2.0], [3.5]])).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Ops</span><span class="o">.</span><span class="n">ADD</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">reverse</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.sub" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">sub</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.sub" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">sub</span><span class="p">(</span><span class="n">x</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code> <span class="doc doc-object-name doc-attribute-name">ConstType</span>
|
|
|
|
|
|
<span class="doc doc-labels">
|
|
<small class="doc doc-label doc-label-module-attribute"><code>module-attribute</code></small>
|
|
</span> (<code>tinygrad.dtype.ConstType</code>)" href="../../dtypes/#tinygrad.dtype.ConstType">ConstType</a></span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Subtracts <code class="language-python highlight"><span class="n">x</span></code> from <code class="language-python highlight"><span class="bp">self</span></code>.
|
|
Equivalent to <code class="language-python highlight"><span class="bp">self</span> <span class="o">-</span> <span class="n">x</span></code>.
|
|
Supports broadcasting to a common shape, type promotion, and integer, float, boolean inputs.</p>
|
|
<p><div class="language-python highlight"><pre><span></span><code><span class="n">Tensor</span><span class="o">.</span><span class="n">manual_seed</span><span class="p">(</span><span class="mi">42</span><span class="p">)</span>
|
|
<span class="n">t</span> <span class="o">=</span> <span class="n">Tensor</span><span class="o">.</span><span class="n">randn</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">0.5144</span> <span class="mf">1.085</span> <span class="mf">0.9089</span> <span class="o">-</span><span class="mf">0.0841</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="mi">20</span><span class="p">)</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">20.5144</span> <span class="o">-</span><span class="mf">18.915</span> <span class="o">-</span><span class="mf">19.0911</span> <span class="o">-</span><span class="mf">20.0841</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([[</span><span class="mf">2.0</span><span class="p">],</span> <span class="p">[</span><span class="mf">3.5</span><span class="p">]]))</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[[</span><span class="o">-</span><span class="mf">2.5144</span> <span class="o">-</span><span class="mf">0.915</span> <span class="o">-</span><span class="mf">1.0911</span> <span class="o">-</span><span class="mf">2.0841</span><span class="p">]</span>
|
|
<span class="p">[</span><span class="o">-</span><span class="mf">4.0144</span> <span class="o">-</span><span class="mf">2.415</span> <span class="o">-</span><span class="mf">2.5911</span> <span class="o">-</span><span class="mf">3.5841</span><span class="p">]]</span>
|
|
</code></pre></div></p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3110</span>
|
|
<span class="normal">3111</span>
|
|
<span class="normal">3112</span>
|
|
<span class="normal">3113</span>
|
|
<span class="normal">3114</span>
|
|
<span class="normal">3115</span>
|
|
<span class="normal">3116</span>
|
|
<span class="normal">3117</span>
|
|
<span class="normal">3118</span>
|
|
<span class="normal">3119</span>
|
|
<span class="normal">3120</span>
|
|
<span class="normal">3121</span>
|
|
<span class="normal">3122</span>
|
|
<span class="normal">3123</span>
|
|
<span class="normal">3124</span>
|
|
<span class="normal">3125</span>
|
|
<span class="normal">3126</span>
|
|
<span class="normal">3127</span>
|
|
<span class="normal">3128</span>
|
|
<span class="normal">3129</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">sub</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">:</span><span class="n">Tensor</span><span class="o">|</span><span class="n">ConstType</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Subtracts `x` from `self`.</span>
|
|
<span class="sd"> Equivalent to `self - x`.</span>
|
|
<span class="sd"> Supports broadcasting to a common shape, type promotion, and integer, float, boolean inputs.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> Tensor.manual_seed(42)</span>
|
|
<span class="sd"> t = Tensor.randn(4)</span>
|
|
<span class="sd"> print(t.numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(t.sub(20).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(t.sub(Tensor([[2.0], [3.5]])).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">a</span><span class="p">,</span> <span class="n">b</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_broadcasted</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">reverse</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">a</span> <span class="o">+</span> <span class="p">(</span><span class="o">-</span><span class="n">b</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.mul" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">mul</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.mul" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">mul</span><span class="p">(</span><span class="n">x</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code> <span class="doc doc-object-name doc-attribute-name">ConstType</span>
|
|
|
|
|
|
<span class="doc doc-labels">
|
|
<small class="doc doc-label doc-label-module-attribute"><code>module-attribute</code></small>
|
|
</span> (<code>tinygrad.dtype.ConstType</code>)" href="../../dtypes/#tinygrad.dtype.ConstType">ConstType</a></span><span class="p">,</span> <span class="n">reverse</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Multiplies <code class="language-python highlight"><span class="bp">self</span></code> and <code class="language-python highlight"><span class="n">x</span></code>.
|
|
Equivalent to <code class="language-python highlight"><span class="bp">self</span> <span class="o">*</span> <span class="n">x</span></code>.
|
|
Supports broadcasting to a common shape, type promotion, and integer, float, boolean inputs.</p>
|
|
<p><div class="language-python highlight"><pre><span></span><code><span class="n">Tensor</span><span class="o">.</span><span class="n">manual_seed</span><span class="p">(</span><span class="mi">42</span><span class="p">)</span>
|
|
<span class="n">t</span> <span class="o">=</span> <span class="n">Tensor</span><span class="o">.</span><span class="n">randn</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">0.5144</span> <span class="mf">1.085</span> <span class="mf">0.9089</span> <span class="o">-</span><span class="mf">0.0841</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">mul</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">1.5431</span> <span class="mf">3.2549</span> <span class="mf">2.7267</span> <span class="o">-</span><span class="mf">0.2523</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">mul</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([[</span><span class="o">-</span><span class="mf">1.0</span><span class="p">],</span> <span class="p">[</span><span class="mf">2.0</span><span class="p">]]))</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[[</span> <span class="mf">0.5144</span> <span class="o">-</span><span class="mf">1.085</span> <span class="o">-</span><span class="mf">0.9089</span> <span class="mf">0.0841</span><span class="p">]</span>
|
|
<span class="p">[</span><span class="o">-</span><span class="mf">1.0287</span> <span class="mf">2.17</span> <span class="mf">1.8178</span> <span class="o">-</span><span class="mf">0.1682</span><span class="p">]]</span>
|
|
</code></pre></div></p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">56</span>
|
|
<span class="normal">57</span>
|
|
<span class="normal">58</span>
|
|
<span class="normal">59</span>
|
|
<span class="normal">60</span>
|
|
<span class="normal">61</span>
|
|
<span class="normal">62</span>
|
|
<span class="normal">63</span>
|
|
<span class="normal">64</span>
|
|
<span class="normal">65</span>
|
|
<span class="normal">66</span>
|
|
<span class="normal">67</span>
|
|
<span class="normal">68</span>
|
|
<span class="normal">69</span>
|
|
<span class="normal">70</span>
|
|
<span class="normal">71</span>
|
|
<span class="normal">72</span>
|
|
<span class="normal">73</span>
|
|
<span class="normal">74</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">mul</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">:</span> <span class="n">Self</span> <span class="o">|</span> <span class="n">ConstType</span><span class="p">,</span> <span class="n">reverse</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Multiplies `self` and `x`.</span>
|
|
<span class="sd"> Equivalent to `self * x`.</span>
|
|
<span class="sd"> Supports broadcasting to a common shape, type promotion, and integer, float, boolean inputs.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> Tensor.manual_seed(42)</span>
|
|
<span class="sd"> t = Tensor.randn(4)</span>
|
|
<span class="sd"> print(t.numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(t.mul(3).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(t.mul(Tensor([[-1.0], [2.0]])).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Ops</span><span class="o">.</span><span class="n">MUL</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">reverse</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.div" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">div</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.div" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">div</span><span class="p">(</span>
|
|
<span class="n">x</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code> <span class="doc doc-object-name doc-attribute-name">ConstType</span>
|
|
|
|
|
|
<span class="doc doc-labels">
|
|
<small class="doc doc-label doc-label-module-attribute"><code>module-attribute</code></small>
|
|
</span> (<code>tinygrad.dtype.ConstType</code>)" href="../../dtypes/#tinygrad.dtype.ConstType">ConstType</a></span><span class="p">,</span>
|
|
<span class="n">reverse</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
|
<span class="n">rounding_mode</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="<code>typing.Literal</code>" href="https://docs.python.org/3/library/typing.html#typing.Literal">Literal</a></span><span class="p">[</span><span class="s2">"trunc"</span><span class="p">,</span> <span class="s2">"floor"</span><span class="p">]</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Divides <code class="language-python highlight"><span class="bp">self</span></code> by <code class="language-python highlight"><span class="n">x</span></code>.
|
|
Equivalent to <code class="language-python highlight"><span class="bp">self</span> <span class="o">/</span> <span class="n">x</span></code>.
|
|
Supports broadcasting to a common shape, type promotion, and integer, float, boolean inputs.
|
|
<code class="language-python highlight"><span class="n">div</span></code> performs true division.</p>
|
|
<p><div class="language-python highlight"><pre><span></span><code><span class="n">Tensor</span><span class="o">.</span><span class="n">manual_seed</span><span class="p">(</span><span class="mi">42</span><span class="p">)</span>
|
|
<span class="n">t</span> <span class="o">=</span> <span class="n">Tensor</span><span class="o">.</span><span class="n">randn</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">0.5144</span> <span class="mf">1.085</span> <span class="mf">0.9089</span> <span class="o">-</span><span class="mf">0.0841</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">div</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mf">0.1715</span> <span class="mf">0.3617</span> <span class="mf">0.303</span> <span class="o">-</span><span class="mf">0.028</span> <span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">10</span><span class="p">])</span><span class="o">.</span><span class="n">div</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">]))</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="mf">0.5</span> <span class="mf">1.3333</span> <span class="mf">2.5</span> <span class="p">]</span>
|
|
</code></pre></div></p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3131</span>
|
|
<span class="normal">3132</span>
|
|
<span class="normal">3133</span>
|
|
<span class="normal">3134</span>
|
|
<span class="normal">3135</span>
|
|
<span class="normal">3136</span>
|
|
<span class="normal">3137</span>
|
|
<span class="normal">3138</span>
|
|
<span class="normal">3139</span>
|
|
<span class="normal">3140</span>
|
|
<span class="normal">3141</span>
|
|
<span class="normal">3142</span>
|
|
<span class="normal">3143</span>
|
|
<span class="normal">3144</span>
|
|
<span class="normal">3145</span>
|
|
<span class="normal">3146</span>
|
|
<span class="normal">3147</span>
|
|
<span class="normal">3148</span>
|
|
<span class="normal">3149</span>
|
|
<span class="normal">3150</span>
|
|
<span class="normal">3151</span>
|
|
<span class="normal">3152</span>
|
|
<span class="normal">3153</span>
|
|
<span class="normal">3154</span>
|
|
<span class="normal">3155</span>
|
|
<span class="normal">3156</span>
|
|
<span class="normal">3157</span>
|
|
<span class="normal">3158</span>
|
|
<span class="normal">3159</span>
|
|
<span class="normal">3160</span>
|
|
<span class="normal">3161</span>
|
|
<span class="normal">3162</span>
|
|
<span class="normal">3163</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">div</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">:</span><span class="n">Tensor</span><span class="o">|</span><span class="n">ConstType</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">rounding_mode</span><span class="p">:</span><span class="n">Literal</span><span class="p">[</span><span class="s2">"trunc"</span><span class="p">,</span> <span class="s2">"floor"</span><span class="p">]</span><span class="o">|</span><span class="kc">None</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Divides `self` by `x`.</span>
|
|
<span class="sd"> Equivalent to `self / x`.</span>
|
|
<span class="sd"> Supports broadcasting to a common shape, type promotion, and integer, float, boolean inputs.</span>
|
|
<span class="sd"> `div` performs true division.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> Tensor.manual_seed(42)</span>
|
|
<span class="sd"> t = Tensor.randn(4)</span>
|
|
<span class="sd"> print(t.numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(t.div(3).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([1, 4, 10]).div(Tensor([2, 3, 4])).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">numerator</span><span class="p">,</span> <span class="n">denominator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_broadcasted</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">reverse</span><span class="p">)</span>
|
|
<span class="n">d</span> <span class="o">=</span> <span class="n">numerator</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">least_upper_float</span><span class="p">(</span><span class="n">numerator</span><span class="o">.</span><span class="n">dtype</span><span class="p">))</span> <span class="o">*</span> <span class="n">denominator</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">least_upper_float</span><span class="p">(</span><span class="n">denominator</span><span class="o">.</span><span class="n">dtype</span><span class="p">))</span><span class="o">.</span><span class="n">reciprocal</span><span class="p">()</span>
|
|
<span class="n">output_dtype</span> <span class="o">=</span> <span class="n">numerator</span><span class="o">.</span><span class="n">dtype</span> <span class="k">if</span> <span class="n">dtypes</span><span class="o">.</span><span class="n">is_int</span><span class="p">(</span><span class="n">numerator</span><span class="o">.</span><span class="n">dtype</span><span class="p">)</span> <span class="k">else</span> <span class="n">d</span><span class="o">.</span><span class="n">dtype</span>
|
|
<span class="k">if</span> <span class="n">dtypes</span><span class="o">.</span><span class="n">is_int</span><span class="p">(</span><span class="n">dt</span><span class="o">:=</span><span class="n">least_upper_dtype</span><span class="p">(</span><span class="n">numerator</span><span class="o">.</span><span class="n">dtype</span><span class="p">,</span> <span class="n">denominator</span><span class="o">.</span><span class="n">dtype</span><span class="p">))</span> <span class="ow">and</span> <span class="n">rounding_mode</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
|
<span class="n">numerator</span><span class="p">,</span> <span class="n">denominator</span> <span class="o">=</span> <span class="n">numerator</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">dt</span><span class="p">),</span> <span class="n">denominator</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">dt</span><span class="p">)</span>
|
|
<span class="k">if</span> <span class="n">rounding_mode</span> <span class="o">==</span> <span class="s2">"trunc"</span><span class="p">:</span> <span class="k">return</span> <span class="n">numerator</span><span class="o">.</span><span class="n">idiv</span><span class="p">(</span><span class="n">denominator</span><span class="p">)</span>
|
|
<span class="k">if</span> <span class="n">rounding_mode</span> <span class="o">==</span> <span class="s2">"floor"</span><span class="p">:</span>
|
|
<span class="n">truncate_div</span><span class="p">,</span> <span class="n">truncate_mod</span> <span class="o">=</span> <span class="n">numerator</span><span class="o">.</span><span class="n">idiv</span><span class="p">(</span><span class="n">denominator</span><span class="p">),</span> <span class="n">numerator</span><span class="o">.</span><span class="n">_apply_broadcasted_uop</span><span class="p">(</span><span class="n">UOp</span><span class="o">.</span><span class="n">mod</span><span class="p">,</span> <span class="n">denominator</span><span class="p">)</span>
|
|
<span class="n">opposite_sign</span> <span class="o">=</span> <span class="p">((</span><span class="n">numerator</span><span class="o">></span><span class="mi">0</span><span class="p">)</span><span class="o">&</span><span class="p">(</span><span class="n">denominator</span><span class="o"><</span><span class="mi">0</span><span class="p">))</span> <span class="o">|</span> <span class="p">((</span><span class="n">numerator</span><span class="o"><</span><span class="mi">0</span><span class="p">)</span><span class="o">&</span><span class="p">(</span><span class="n">denominator</span><span class="o">></span><span class="mi">0</span><span class="p">))</span>
|
|
<span class="k">return</span> <span class="p">(</span><span class="n">opposite_sign</span><span class="o">&</span><span class="p">(</span><span class="n">truncate_mod</span><span class="o">!=</span><span class="mi">0</span><span class="p">))</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">truncate_div</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">truncate_div</span><span class="p">)</span>
|
|
<span class="k">if</span> <span class="n">rounding_mode</span> <span class="o">==</span> <span class="s2">"trunc"</span><span class="p">:</span> <span class="k">return</span> <span class="n">d</span><span class="o">.</span><span class="n">trunc</span><span class="p">()</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">output_dtype</span><span class="p">)</span>
|
|
<span class="k">if</span> <span class="n">rounding_mode</span> <span class="o">==</span> <span class="s2">"floor"</span><span class="p">:</span> <span class="k">return</span> <span class="n">d</span><span class="o">.</span><span class="n">floor</span><span class="p">()</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">output_dtype</span><span class="p">)</span>
|
|
<span class="k">if</span> <span class="n">rounding_mode</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">rounding_mode</span><span class="si">=}</span><span class="s2"> is not supported"</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">d</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.idiv" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">idiv</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.idiv" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">idiv</span><span class="p">(</span><span class="n">x</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code> <span class="doc doc-object-name doc-attribute-name">ConstType</span>
|
|
|
|
|
|
<span class="doc doc-labels">
|
|
<small class="doc doc-label doc-label-module-attribute"><code>module-attribute</code></small>
|
|
</span> (<code>tinygrad.dtype.ConstType</code>)" href="../../dtypes/#tinygrad.dtype.ConstType">ConstType</a></span><span class="p">,</span> <span class="n">reverse</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Divides <code class="language-python highlight"><span class="bp">self</span></code> by <code class="language-python highlight"><span class="n">x</span></code>.
|
|
Equivalent to <code class="language-python highlight"><span class="bp">self</span> <span class="o">//</span> <span class="n">x</span></code>.
|
|
Supports broadcasting to a common shape, type promotion, and integer inputs.
|
|
<code class="language-python highlight"><span class="n">idiv</span></code> performs integer division (truncate towards zero).</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mi">4</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="o">-</span><span class="mi">7</span><span class="p">,</span> <span class="mi">8</span><span class="p">])</span><span class="o">.</span><span class="n">idiv</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mi">2</span><span class="p">,</span> <span class="o">-</span><span class="mi">3</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="o">-</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">5</span><span class="p">]))</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mi">2</span> <span class="o">-</span><span class="mi">2</span> <span class="mi">0</span> <span class="o">-</span><span class="mi">2</span> <span class="o">-</span><span class="mi">2</span> <span class="mi">1</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">122</span>
|
|
<span class="normal">123</span>
|
|
<span class="normal">124</span>
|
|
<span class="normal">125</span>
|
|
<span class="normal">126</span>
|
|
<span class="normal">127</span>
|
|
<span class="normal">128</span>
|
|
<span class="normal">129</span>
|
|
<span class="normal">130</span>
|
|
<span class="normal">131</span>
|
|
<span class="normal">132</span>
|
|
<span class="normal">133</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">idiv</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">:</span> <span class="n">Self</span> <span class="o">|</span> <span class="n">ConstType</span><span class="p">,</span> <span class="n">reverse</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Divides `self` by `x`.</span>
|
|
<span class="sd"> Equivalent to `self // x`.</span>
|
|
<span class="sd"> Supports broadcasting to a common shape, type promotion, and integer inputs.</span>
|
|
<span class="sd"> `idiv` performs integer division (truncate towards zero).</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-4, 7, 5, 4, -7, 8]).idiv(Tensor([2, -3, 8, -2, 3, 5])).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Ops</span><span class="o">.</span><span class="n">IDIV</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">reverse</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.mod" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">mod</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.mod" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">mod</span><span class="p">(</span><span class="n">x</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code> <span class="doc doc-object-name doc-attribute-name">ConstType</span>
|
|
|
|
|
|
<span class="doc doc-labels">
|
|
<small class="doc doc-label doc-label-module-attribute"><code>module-attribute</code></small>
|
|
</span> (<code>tinygrad.dtype.ConstType</code>)" href="../../dtypes/#tinygrad.dtype.ConstType">ConstType</a></span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Mod <code class="language-python highlight"><span class="bp">self</span></code> by <code class="language-python highlight"><span class="n">x</span></code>.
|
|
Equivalent to <code class="language-python highlight"><span class="bp">self</span> <span class="o">%</span> <span class="n">x</span></code>.
|
|
Supports broadcasting to a common shape, type promotion, and integer inputs.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mi">4</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="o">-</span><span class="mi">7</span><span class="p">,</span> <span class="mi">8</span><span class="p">])</span><span class="o">.</span><span class="n">mod</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mi">2</span><span class="p">,</span> <span class="o">-</span><span class="mi">3</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="o">-</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">5</span><span class="p">]))</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span> <span class="mi">0</span> <span class="o">-</span><span class="mi">2</span> <span class="mi">5</span> <span class="mi">0</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3165</span>
|
|
<span class="normal">3166</span>
|
|
<span class="normal">3167</span>
|
|
<span class="normal">3168</span>
|
|
<span class="normal">3169</span>
|
|
<span class="normal">3170</span>
|
|
<span class="normal">3171</span>
|
|
<span class="normal">3172</span>
|
|
<span class="normal">3173</span>
|
|
<span class="normal">3174</span>
|
|
<span class="normal">3175</span>
|
|
<span class="normal">3176</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">mod</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">:</span><span class="n">Tensor</span><span class="o">|</span><span class="n">ConstType</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Mod `self` by `x`.</span>
|
|
<span class="sd"> Equivalent to `self % x`.</span>
|
|
<span class="sd"> Supports broadcasting to a common shape, type promotion, and integer inputs.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-4, 7, 5, 4, -7, 8]).mod(Tensor([2, -3, 8, -2, 3, 5])).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">a</span><span class="p">,</span> <span class="n">b</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_broadcasted</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">reverse</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">a</span> <span class="o">-</span> <span class="n">a</span><span class="o">.</span><span class="n">div</span><span class="p">(</span><span class="n">b</span><span class="p">,</span> <span class="n">rounding_mode</span><span class="o">=</span><span class="s2">"floor"</span><span class="p">)</span> <span class="o">*</span> <span class="n">b</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.bitwise_xor" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">bitwise_xor</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.bitwise_xor" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">bitwise_xor</span><span class="p">(</span><span class="n">x</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code> <span class="doc doc-object-name doc-attribute-name">ConstType</span>
|
|
|
|
|
|
<span class="doc doc-labels">
|
|
<small class="doc doc-label doc-label-module-attribute"><code>module-attribute</code></small>
|
|
</span> (<code>tinygrad.dtype.ConstType</code>)" href="../../dtypes/#tinygrad.dtype.ConstType">ConstType</a></span><span class="p">,</span> <span class="n">reverse</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes bitwise xor of <code class="language-python highlight"><span class="bp">self</span></code> and <code class="language-python highlight"><span class="n">x</span></code>.
|
|
Equivalent to <code class="language-python highlight"><span class="bp">self</span> <span class="o">^</span> <span class="n">x</span></code>.
|
|
Supports broadcasting to a common shape, type promotion, and integer, boolean inputs.</p>
|
|
<p><div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">])</span><span class="o">.</span><span class="n">bitwise_xor</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">3</span><span class="p">]))</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mi">2</span> <span class="o">-</span><span class="mi">2</span> <span class="mi">0</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="kc">True</span><span class="p">,</span> <span class="kc">True</span><span class="p">,</span> <span class="kc">False</span><span class="p">,</span> <span class="kc">False</span><span class="p">])</span><span class="o">.</span><span class="n">bitwise_xor</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="kc">True</span><span class="p">,</span> <span class="kc">False</span><span class="p">,</span> <span class="kc">True</span><span class="p">,</span> <span class="kc">False</span><span class="p">]))</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="kc">False</span> <span class="kc">True</span> <span class="kc">True</span> <span class="kc">False</span><span class="p">]</span>
|
|
</code></pre></div></p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">106</span>
|
|
<span class="normal">107</span>
|
|
<span class="normal">108</span>
|
|
<span class="normal">109</span>
|
|
<span class="normal">110</span>
|
|
<span class="normal">111</span>
|
|
<span class="normal">112</span>
|
|
<span class="normal">113</span>
|
|
<span class="normal">114</span>
|
|
<span class="normal">115</span>
|
|
<span class="normal">116</span>
|
|
<span class="normal">117</span>
|
|
<span class="normal">118</span>
|
|
<span class="normal">119</span>
|
|
<span class="normal">120</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">bitwise_xor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">:</span> <span class="n">Self</span> <span class="o">|</span> <span class="n">ConstType</span><span class="p">,</span> <span class="n">reverse</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes bitwise xor of `self` and `x`.</span>
|
|
<span class="sd"> Equivalent to `self ^ x`.</span>
|
|
<span class="sd"> Supports broadcasting to a common shape, type promotion, and integer, boolean inputs.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-1, -2, 3]).bitwise_xor(Tensor([1, 0, 3])).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([True, True, False, False]).bitwise_xor(Tensor([True, False, True, False])).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">_check_dtype</span><span class="p">()</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Ops</span><span class="o">.</span><span class="n">XOR</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">reverse</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.bitwise_and" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">bitwise_and</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.bitwise_and" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">bitwise_and</span><span class="p">(</span><span class="n">x</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code> <span class="doc doc-object-name doc-attribute-name">ConstType</span>
|
|
|
|
|
|
<span class="doc doc-labels">
|
|
<small class="doc doc-label doc-label-module-attribute"><code>module-attribute</code></small>
|
|
</span> (<code>tinygrad.dtype.ConstType</code>)" href="../../dtypes/#tinygrad.dtype.ConstType">ConstType</a></span><span class="p">,</span> <span class="n">reverse</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes the bitwise AND of <code class="language-python highlight"><span class="bp">self</span></code> and <code class="language-python highlight"><span class="n">x</span></code>.
|
|
Equivalent to <code class="language-python highlight"><span class="bp">self</span> <span class="o">&</span> <span class="n">x</span></code>.
|
|
Supports broadcasting to a common shape, type promotion, and integer, boolean inputs.
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mi">2</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">255</span><span class="p">])</span><span class="o">.</span><span class="n">bitwise_and</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mi">3</span><span class="p">,</span> <span class="mi">14</span><span class="p">,</span> <span class="mi">16</span><span class="p">]))</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span> <span class="mi">2</span> <span class="mi">4</span> <span class="mi">16</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="kc">True</span><span class="p">,</span> <span class="kc">True</span><span class="p">,</span> <span class="kc">False</span><span class="p">,</span> <span class="kc">False</span><span class="p">])</span><span class="o">.</span><span class="n">bitwise_and</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="kc">True</span><span class="p">,</span> <span class="kc">False</span><span class="p">,</span> <span class="kc">True</span><span class="p">,</span> <span class="kc">False</span><span class="p">]))</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span> <span class="kc">True</span> <span class="kc">False</span> <span class="kc">False</span> <span class="kc">False</span><span class="p">]</span>
|
|
</code></pre></div></p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">76</span>
|
|
<span class="normal">77</span>
|
|
<span class="normal">78</span>
|
|
<span class="normal">79</span>
|
|
<span class="normal">80</span>
|
|
<span class="normal">81</span>
|
|
<span class="normal">82</span>
|
|
<span class="normal">83</span>
|
|
<span class="normal">84</span>
|
|
<span class="normal">85</span>
|
|
<span class="normal">86</span>
|
|
<span class="normal">87</span>
|
|
<span class="normal">88</span>
|
|
<span class="normal">89</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">bitwise_and</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">:</span> <span class="n">Self</span> <span class="o">|</span> <span class="n">ConstType</span><span class="p">,</span> <span class="n">reverse</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes the bitwise AND of `self` and `x`.</span>
|
|
<span class="sd"> Equivalent to `self & x`.</span>
|
|
<span class="sd"> Supports broadcasting to a common shape, type promotion, and integer, boolean inputs.</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([2, 5, 255]).bitwise_and(Tensor([3, 14, 16])).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([True, True, False, False]).bitwise_and(Tensor([True, False, True, False])).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">_check_dtype</span><span class="p">()</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Ops</span><span class="o">.</span><span class="n">AND</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">reverse</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.bitwise_or" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">bitwise_or</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.bitwise_or" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">bitwise_or</span><span class="p">(</span><span class="n">x</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code> <span class="doc doc-object-name doc-attribute-name">ConstType</span>
|
|
|
|
|
|
<span class="doc doc-labels">
|
|
<small class="doc doc-label doc-label-module-attribute"><code>module-attribute</code></small>
|
|
</span> (<code>tinygrad.dtype.ConstType</code>)" href="../../dtypes/#tinygrad.dtype.ConstType">ConstType</a></span><span class="p">,</span> <span class="n">reverse</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes the bitwise OR of <code class="language-python highlight"><span class="bp">self</span></code> and <code class="language-python highlight"><span class="n">x</span></code>.
|
|
Equivalent to <code class="language-python highlight"><span class="bp">self</span> <span class="o">|</span> <span class="n">x</span></code>.
|
|
Supports broadcasting to a common shape, type promotion, and integer, boolean inputs.
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mi">2</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">255</span><span class="p">])</span><span class="o">.</span><span class="n">bitwise_or</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">]))</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span> <span class="mi">6</span> <span class="mi">5</span> <span class="mi">255</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="kc">True</span><span class="p">,</span> <span class="kc">True</span><span class="p">,</span> <span class="kc">False</span><span class="p">,</span> <span class="kc">False</span><span class="p">])</span><span class="o">.</span><span class="n">bitwise_or</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="kc">True</span><span class="p">,</span> <span class="kc">False</span><span class="p">,</span> <span class="kc">True</span><span class="p">,</span> <span class="kc">False</span><span class="p">]))</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span> <span class="kc">True</span> <span class="kc">True</span> <span class="kc">True</span> <span class="kc">False</span><span class="p">]</span>
|
|
</code></pre></div></p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/math.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 91</span>
|
|
<span class="normal"> 92</span>
|
|
<span class="normal"> 93</span>
|
|
<span class="normal"> 94</span>
|
|
<span class="normal"> 95</span>
|
|
<span class="normal"> 96</span>
|
|
<span class="normal"> 97</span>
|
|
<span class="normal"> 98</span>
|
|
<span class="normal"> 99</span>
|
|
<span class="normal">100</span>
|
|
<span class="normal">101</span>
|
|
<span class="normal">102</span>
|
|
<span class="normal">103</span>
|
|
<span class="normal">104</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">bitwise_or</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">:</span> <span class="n">Self</span> <span class="o">|</span> <span class="n">ConstType</span><span class="p">,</span> <span class="n">reverse</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes the bitwise OR of `self` and `x`.</span>
|
|
<span class="sd"> Equivalent to `self | x`.</span>
|
|
<span class="sd"> Supports broadcasting to a common shape, type promotion, and integer, boolean inputs.</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([2, 5, 255]).bitwise_or(Tensor([4, 4, 4])).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([True, True, False, False]).bitwise_or(Tensor([True, False, True, False])).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">_check_dtype</span><span class="p">()</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Ops</span><span class="o">.</span><span class="n">OR</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">reverse</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.bitwise_not" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">bitwise_not</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.bitwise_not" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">bitwise_not</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes the bitwise NOT of <code class="language-python highlight"><span class="bp">self</span></code>.
|
|
Equivalent to <code class="language-python highlight"><span class="o">~</span><span class="bp">self</span></code>.
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">255</span><span class="p">],</span> <span class="n">dtype</span><span class="o">=</span><span class="s2">"int8"</span><span class="p">)</span><span class="o">.</span><span class="n">bitwise_not</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mi">1</span> <span class="o">-</span><span class="mi">3</span> <span class="o">-</span><span class="mi">6</span> <span class="mi">0</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="kc">True</span><span class="p">,</span> <span class="kc">False</span><span class="p">])</span><span class="o">.</span><span class="n">bitwise_not</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="kc">False</span> <span class="kc">True</span><span class="p">]</span>
|
|
</code></pre></div></p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3178</span>
|
|
<span class="normal">3179</span>
|
|
<span class="normal">3180</span>
|
|
<span class="normal">3181</span>
|
|
<span class="normal">3182</span>
|
|
<span class="normal">3183</span>
|
|
<span class="normal">3184</span>
|
|
<span class="normal">3185</span>
|
|
<span class="normal">3186</span>
|
|
<span class="normal">3187</span>
|
|
<span class="normal">3188</span>
|
|
<span class="normal">3189</span>
|
|
<span class="normal">3190</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">bitwise_not</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes the bitwise NOT of `self`.</span>
|
|
<span class="sd"> Equivalent to `~self`.</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([0, 2, 5, 255], dtype="int8").bitwise_not().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([True, False]).bitwise_not().numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dtype</span> <span class="o">!=</span> <span class="n">dtypes</span><span class="o">.</span><span class="n">bool</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">dtypes</span><span class="o">.</span><span class="n">is_int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">):</span> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="si">}</span><span class="s2"> is not supported"</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">logical_not</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dtype</span> <span class="o">==</span> <span class="n">dtypes</span><span class="o">.</span><span class="n">bool</span> <span class="k">else</span> <span class="bp">self</span> <span class="o">^</span> <span class="o">-</span><span class="mi">1</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.lshift" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">lshift</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.lshift" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">lshift</span><span class="p">(</span><span class="n">x</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">int</span> (<code>tinygrad.tensor.Tensor.int</code>)" href="#tinygrad.Tensor.int">int</a></span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes left arithmetic shift of <code class="language-python highlight"><span class="bp">self</span></code> by <code class="language-python highlight"><span class="n">x</span></code> bits. <code class="language-python highlight"><span class="bp">self</span></code> must have unsigned dtype.
|
|
Equivalent to <code class="language-python highlight"><span class="bp">self</span> <span class="o"><<</span> <span class="n">x</span></code>.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">31</span><span class="p">],</span> <span class="n">dtype</span><span class="o">=</span><span class="n">dtypes</span><span class="o">.</span><span class="n">uint8</span><span class="p">)</span><span class="o">.</span><span class="n">lshift</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span> <span class="mi">4</span> <span class="mi">12</span> <span class="mi">124</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3192</span>
|
|
<span class="normal">3193</span>
|
|
<span class="normal">3194</span>
|
|
<span class="normal">3195</span>
|
|
<span class="normal">3196</span>
|
|
<span class="normal">3197</span>
|
|
<span class="normal">3198</span>
|
|
<span class="normal">3199</span>
|
|
<span class="normal">3200</span>
|
|
<span class="normal">3201</span>
|
|
<span class="normal">3202</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">lshift</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">:</span><span class="n">Tensor</span><span class="o">|</span><span class="nb">int</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes left arithmetic shift of `self` by `x` bits. `self` must have unsigned dtype.</span>
|
|
<span class="sd"> Equivalent to `self << x`.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([1, 3, 31], dtype=dtypes.uint8).lshift(2).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">assert</span> <span class="n">dtypes</span><span class="o">.</span><span class="n">is_unsigned</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="nb">int</span><span class="p">)</span> <span class="ow">and</span> <span class="n">x</span> <span class="o">>=</span> <span class="mi">0</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">reverse</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"not supported </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="si">=}</span><span class="s2"> </span><span class="si">{</span><span class="n">x</span><span class="si">=}</span><span class="s2">"</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">mul</span><span class="p">(</span><span class="mi">2</span> <span class="o">**</span> <span class="n">x</span><span class="p">,</span> <span class="n">reverse</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.rshift" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">rshift</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.rshift" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">rshift</span><span class="p">(</span><span class="n">x</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">int</span> (<code>tinygrad.tensor.Tensor.int</code>)" href="#tinygrad.Tensor.int">int</a></span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes right arithmetic shift of <code class="language-python highlight"><span class="bp">self</span></code> by <code class="language-python highlight"><span class="n">x</span></code> bits. <code class="language-python highlight"><span class="bp">self</span></code> must have unsigned dtype.
|
|
Equivalent to <code class="language-python highlight"><span class="bp">self</span> <span class="o">>></span> <span class="n">x</span></code>.</p>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="mi">4</span><span class="p">,</span> <span class="mi">13</span><span class="p">,</span> <span class="mi">125</span><span class="p">],</span> <span class="n">dtype</span><span class="o">=</span><span class="n">dtypes</span><span class="o">.</span><span class="n">uint8</span><span class="p">)</span><span class="o">.</span><span class="n">rshift</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span> <span class="mi">1</span> <span class="mi">3</span> <span class="mi">31</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3204</span>
|
|
<span class="normal">3205</span>
|
|
<span class="normal">3206</span>
|
|
<span class="normal">3207</span>
|
|
<span class="normal">3208</span>
|
|
<span class="normal">3209</span>
|
|
<span class="normal">3210</span>
|
|
<span class="normal">3211</span>
|
|
<span class="normal">3212</span>
|
|
<span class="normal">3213</span>
|
|
<span class="normal">3214</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">rshift</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">:</span><span class="n">Tensor</span><span class="o">|</span><span class="nb">int</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes right arithmetic shift of `self` by `x` bits. `self` must have unsigned dtype.</span>
|
|
<span class="sd"> Equivalent to `self >> x`.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([4, 13, 125], dtype=dtypes.uint8).rshift(2).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">assert</span> <span class="n">dtypes</span><span class="o">.</span><span class="n">is_unsigned</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="nb">int</span><span class="p">)</span> <span class="ow">and</span> <span class="n">x</span> <span class="o">>=</span> <span class="mi">0</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">reverse</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"not supported </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="si">=}</span><span class="s2"> </span><span class="si">{</span><span class="n">x</span><span class="si">=}</span><span class="s2">"</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">idiv</span><span class="p">(</span><span class="mi">2</span> <span class="o">**</span> <span class="n">x</span><span class="p">,</span> <span class="n">reverse</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.pow" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">pow</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.pow" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">pow</span><span class="p">(</span><span class="n">x</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code> <span class="doc doc-object-name doc-attribute-name">ConstType</span>
|
|
|
|
|
|
<span class="doc doc-labels">
|
|
<small class="doc doc-label doc-label-module-attribute"><code>module-attribute</code></small>
|
|
</span> (<code>tinygrad.dtype.ConstType</code>)" href="../../dtypes/#tinygrad.dtype.ConstType">ConstType</a></span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes power of <code class="language-python highlight"><span class="bp">self</span></code> with <code class="language-python highlight"><span class="n">x</span></code>.
|
|
Equivalent to <code class="language-python highlight"><span class="bp">self</span> <span class="o">**</span> <span class="n">x</span></code>.</p>
|
|
<p><div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">])</span><span class="o">.</span><span class="n">pow</span><span class="p">(</span><span class="mf">2.0</span><span class="p">)</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="mi">1</span> <span class="mi">4</span> <span class="mi">9</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">])</span><span class="o">.</span><span class="n">pow</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">1.5</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">]))</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mi">2147483648</span> <span class="mi">1</span> <span class="mi">5</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">((</span><span class="mf">2.0</span> <span class="o">**</span> <span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">]))</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="mf">0.5</span> <span class="mf">4.</span> <span class="mf">8.</span> <span class="p">]</span>
|
|
</code></pre></div></p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3216</span>
|
|
<span class="normal">3217</span>
|
|
<span class="normal">3218</span>
|
|
<span class="normal">3219</span>
|
|
<span class="normal">3220</span>
|
|
<span class="normal">3221</span>
|
|
<span class="normal">3222</span>
|
|
<span class="normal">3223</span>
|
|
<span class="normal">3224</span>
|
|
<span class="normal">3225</span>
|
|
<span class="normal">3226</span>
|
|
<span class="normal">3227</span>
|
|
<span class="normal">3228</span>
|
|
<span class="normal">3229</span>
|
|
<span class="normal">3230</span>
|
|
<span class="normal">3231</span>
|
|
<span class="normal">3232</span>
|
|
<span class="normal">3233</span>
|
|
<span class="normal">3234</span>
|
|
<span class="normal">3235</span>
|
|
<span class="normal">3236</span>
|
|
<span class="normal">3237</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">pow</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">:</span><span class="n">Tensor</span><span class="o">|</span><span class="n">ConstType</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes power of `self` with `x`.</span>
|
|
<span class="sd"> Equivalent to `self ** x`.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-1, 2, 3]).pow(2.0).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-1, 2, 3]).pow(Tensor([-1.5, 0.5, 1.5])).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print((2.0 ** Tensor([-1, 2, 3])).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">base</span><span class="p">,</span> <span class="n">exponent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_broadcasted</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="n">reverse</span><span class="p">)</span>
|
|
<span class="c1"># TODO: int pow</span>
|
|
<span class="k">if</span> <span class="ow">not</span> <span class="n">base</span><span class="o">.</span><span class="n">is_floating_point</span><span class="p">()</span> <span class="ow">and</span> <span class="ow">not</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="nb">int</span><span class="p">)</span> <span class="ow">and</span> <span class="n">x</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">):</span> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">"base needs to be float"</span><span class="p">)</span>
|
|
|
|
<span class="n">ret</span> <span class="o">=</span> <span class="n">base</span><span class="o">.</span><span class="n">_apply_uop</span><span class="p">(</span><span class="n">UOp</span><span class="o">.</span><span class="n">pow</span><span class="p">,</span> <span class="n">exponent</span><span class="p">)</span>
|
|
<span class="c1"># NOTE: pow(int, float) -> int</span>
|
|
<span class="k">return</span> <span class="n">ret</span><span class="o">.</span><span class="n">round</span><span class="p">()</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">)</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">reverse</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">dtypes</span><span class="o">.</span><span class="n">is_float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">)</span> <span class="ow">and</span> <span class="n">dtypes</span><span class="o">.</span><span class="n">is_float</span><span class="p">(</span><span class="n">exponent</span><span class="o">.</span><span class="n">dtype</span><span class="p">)</span> <span class="k">else</span> <span class="n">ret</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.maximum" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">maximum</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.maximum" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">maximum</span><span class="p">(</span><span class="n">x</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code> <span class="doc doc-object-name doc-attribute-name">ConstType</span>
|
|
|
|
|
|
<span class="doc doc-labels">
|
|
<small class="doc doc-label doc-label-module-attribute"><code>module-attribute</code></small>
|
|
</span> (<code>tinygrad.dtype.ConstType</code>)" href="../../dtypes/#tinygrad.dtype.ConstType">ConstType</a></span><span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes element-wise maximum of <code class="language-python highlight"><span class="bp">self</span></code> and <code class="language-python highlight"><span class="n">x</span></code>.</p>
|
|
<p><div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">])</span><span class="o">.</span><span class="n">maximum</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">])</span><span class="o">.</span><span class="n">maximum</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mi">4</span><span class="p">,</span> <span class="o">-</span><span class="mi">2</span><span class="p">,</span> <span class="mi">9</span><span class="p">]))</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mi">1</span> <span class="mi">2</span> <span class="mi">9</span><span class="p">]</span>
|
|
</code></pre></div></p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3239</span>
|
|
<span class="normal">3240</span>
|
|
<span class="normal">3241</span>
|
|
<span class="normal">3242</span>
|
|
<span class="normal">3243</span>
|
|
<span class="normal">3244</span>
|
|
<span class="normal">3245</span>
|
|
<span class="normal">3246</span>
|
|
<span class="normal">3247</span>
|
|
<span class="normal">3248</span>
|
|
<span class="normal">3249</span>
|
|
<span class="normal">3250</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">maximum</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">:</span><span class="n">Tensor</span><span class="o">|</span><span class="n">ConstType</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes element-wise maximum of `self` and `x`.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-1, 2, 3]).maximum(1).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-1, 2, 3]).maximum(Tensor([-4, -2, 9])).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_apply_broadcasted_uop</span><span class="p">(</span><span class="n">UOp</span><span class="o">.</span><span class="n">maximum</span><span class="p">,</span> <span class="n">x</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.minimum" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">minimum</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.minimum" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">minimum</span><span class="p">(</span><span class="n">x</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code> <span class="doc doc-object-name doc-attribute-name">ConstType</span>
|
|
|
|
|
|
<span class="doc doc-labels">
|
|
<small class="doc doc-label doc-label-module-attribute"><code>module-attribute</code></small>
|
|
</span> (<code>tinygrad.dtype.ConstType</code>)" href="../../dtypes/#tinygrad.dtype.ConstType">ConstType</a></span><span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes element-wise minimum of <code class="language-python highlight"><span class="bp">self</span></code> and <code class="language-python highlight"><span class="n">x</span></code>.</p>
|
|
<p><div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">])</span><span class="o">.</span><span class="n">minimum</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mi">1</span> <span class="mi">1</span> <span class="mi">1</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">])</span><span class="o">.</span><span class="n">minimum</span><span class="p">(</span><span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mi">4</span><span class="p">,</span> <span class="o">-</span><span class="mi">2</span><span class="p">,</span> <span class="mi">9</span><span class="p">]))</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[</span><span class="o">-</span><span class="mi">4</span> <span class="o">-</span><span class="mi">2</span> <span class="mi">3</span><span class="p">]</span>
|
|
</code></pre></div></p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3252</span>
|
|
<span class="normal">3253</span>
|
|
<span class="normal">3254</span>
|
|
<span class="normal">3255</span>
|
|
<span class="normal">3256</span>
|
|
<span class="normal">3257</span>
|
|
<span class="normal">3258</span>
|
|
<span class="normal">3259</span>
|
|
<span class="normal">3260</span>
|
|
<span class="normal">3261</span>
|
|
<span class="normal">3262</span>
|
|
<span class="normal">3263</span>
|
|
<span class="normal">3264</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">minimum</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">:</span><span class="n">Tensor</span><span class="o">|</span><span class="n">ConstType</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes element-wise minimum of `self` and `x`.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-1, 2, 3]).minimum(1).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print(Tensor([-1, 2, 3]).minimum(Tensor([-4, -2, 9])).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">t</span><span class="p">,</span> <span class="n">x</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_broadcasted</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">_inverse</span><span class="p">()</span><span class="o">.</span><span class="n">maximum</span><span class="p">(</span><span class="n">x</span><span class="o">.</span><span class="n">_inverse</span><span class="p">())</span><span class="o">.</span><span class="n">_inverse</span><span class="p">()</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.where" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">where</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.where" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">where</span><span class="p">(</span>
|
|
<span class="n">x</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code> <span class="doc doc-object-name doc-attribute-name">ConstType</span>
|
|
|
|
|
|
<span class="doc doc-labels">
|
|
<small class="doc doc-label doc-label-module-attribute"><code>module-attribute</code></small>
|
|
</span> (<code>tinygrad.dtype.ConstType</code>)" href="../../dtypes/#tinygrad.dtype.ConstType">ConstType</a></span> <span class="o">|</span> <span class="n"><span title="tinygrad.uop.ops.sint">sint</span></span><span class="p">,</span>
|
|
<span class="n">y</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code> <span class="doc doc-object-name doc-attribute-name">ConstType</span>
|
|
|
|
|
|
<span class="doc doc-labels">
|
|
<small class="doc doc-label doc-label-module-attribute"><code>module-attribute</code></small>
|
|
</span> (<code>tinygrad.dtype.ConstType</code>)" href="../../dtypes/#tinygrad.dtype.ConstType">ConstType</a></span> <span class="o">|</span> <span class="n"><span title="tinygrad.uop.ops.sint">sint</span></span><span class="p">,</span>
|
|
<span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Returns a tensor of elements selected from either <code class="language-python highlight"><span class="n">x</span></code> or <code class="language-python highlight"><span class="n">y</span></code>, depending on <code class="language-python highlight"><span class="bp">self</span></code>.
|
|
<code class="language-python highlight"><span class="n">output_i</span> <span class="o">=</span> <span class="n">x_i</span> <span class="k">if</span> <span class="n">self_i</span> <span class="k">else</span> <span class="n">y_i</span></code>.</p>
|
|
<p><div class="language-python highlight"><pre><span></span><code><span class="n">cond</span> <span class="o">=</span> <span class="n">Tensor</span><span class="p">([[</span><span class="kc">True</span><span class="p">,</span> <span class="kc">True</span><span class="p">,</span> <span class="kc">False</span><span class="p">],</span> <span class="p">[</span><span class="kc">True</span><span class="p">,</span> <span class="kc">False</span><span class="p">,</span> <span class="kc">False</span><span class="p">]])</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="n">cond</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[[</span><span class="mi">1</span> <span class="mi">1</span> <span class="mi">3</span><span class="p">]</span>
|
|
<span class="p">[</span><span class="mi">1</span> <span class="mi">3</span> <span class="mi">3</span><span class="p">]]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="n">Tensor</span><span class="o">.</span><span class="n">manual_seed</span><span class="p">(</span><span class="mi">42</span><span class="p">)</span>
|
|
<span class="n">cond</span> <span class="o">=</span> <span class="n">Tensor</span><span class="o">.</span><span class="n">randn</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="n">cond</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[[</span> <span class="mf">0.9779</span> <span class="mf">0.4678</span> <span class="mf">0.5526</span><span class="p">]</span>
|
|
<span class="p">[</span><span class="o">-</span><span class="mf">0.3288</span> <span class="o">-</span><span class="mf">0.8555</span> <span class="mf">0.2753</span><span class="p">]]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="nb">print</span><span class="p">((</span><span class="n">cond</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">cond</span><span class="p">,</span> <span class="o">-</span><span class="nb">float</span><span class="p">(</span><span class="s2">"inf"</span><span class="p">))</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="p">[[</span><span class="mf">0.9779</span> <span class="mf">0.4678</span> <span class="mf">0.5526</span><span class="p">]</span>
|
|
<span class="p">[</span> <span class="o">-</span><span class="n">inf</span> <span class="o">-</span><span class="n">inf</span> <span class="mf">0.2753</span><span class="p">]]</span>
|
|
</code></pre></div></p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3266</span>
|
|
<span class="normal">3267</span>
|
|
<span class="normal">3268</span>
|
|
<span class="normal">3269</span>
|
|
<span class="normal">3270</span>
|
|
<span class="normal">3271</span>
|
|
<span class="normal">3272</span>
|
|
<span class="normal">3273</span>
|
|
<span class="normal">3274</span>
|
|
<span class="normal">3275</span>
|
|
<span class="normal">3276</span>
|
|
<span class="normal">3277</span>
|
|
<span class="normal">3278</span>
|
|
<span class="normal">3279</span>
|
|
<span class="normal">3280</span>
|
|
<span class="normal">3281</span>
|
|
<span class="normal">3282</span>
|
|
<span class="normal">3283</span>
|
|
<span class="normal">3284</span>
|
|
<span class="normal">3285</span>
|
|
<span class="normal">3286</span>
|
|
<span class="normal">3287</span>
|
|
<span class="normal">3288</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">where</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span><span class="n">Tensor</span><span class="p">,</span> <span class="n">x</span><span class="p">:</span><span class="n">Tensor</span><span class="o">|</span><span class="n">ConstType</span><span class="o">|</span><span class="n">sint</span><span class="p">,</span> <span class="n">y</span><span class="p">:</span><span class="n">Tensor</span><span class="o">|</span><span class="n">ConstType</span><span class="o">|</span><span class="n">sint</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a tensor of elements selected from either `x` or `y`, depending on `self`.</span>
|
|
<span class="sd"> `output_i = x_i if self_i else y_i`.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> cond = Tensor([[True, True, False], [True, False, False]])</span>
|
|
<span class="sd"> print(cond.where(1, 3).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> Tensor.manual_seed(42)</span>
|
|
<span class="sd"> cond = Tensor.randn(2, 3)</span>
|
|
<span class="sd"> print(cond.numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> print((cond > 0).where(cond, -float("inf")).numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">Tensor</span><span class="p">):</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span> <span class="o">=</span> <span class="n">x</span><span class="o">.</span><span class="n">_broadcasted</span><span class="p">(</span><span class="n">y</span><span class="p">)</span>
|
|
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">y</span><span class="p">,</span> <span class="n">Tensor</span><span class="p">):</span> <span class="n">y</span><span class="p">,</span> <span class="n">x</span> <span class="o">=</span> <span class="n">y</span><span class="o">.</span><span class="n">_broadcasted</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
|
|
<span class="n">cond</span><span class="p">,</span> <span class="n">x</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_broadcasted</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">match_dtype</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
|
|
<span class="n">cond</span><span class="p">,</span> <span class="n">y</span> <span class="o">=</span> <span class="n">cond</span><span class="o">.</span><span class="n">_broadcasted</span><span class="p">(</span><span class="n">y</span><span class="p">,</span> <span class="n">match_dtype</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">cond</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">dtypes</span><span class="o">.</span><span class="n">bool</span><span class="p">)</span><span class="o">.</span><span class="n">_apply_uop</span><span class="p">(</span><span class="n">UOp</span><span class="o">.</span><span class="n">where</span><span class="p">,</span> <span class="o">*</span><span class="n">x</span><span class="o">.</span><span class="n">_broadcasted</span><span class="p">(</span><span class="n">y</span><span class="p">))</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.copysign" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">copysign</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.copysign" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">copysign</span><span class="p">(</span><span class="n">other</span><span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Returns a tensor of with the magnitude of <code class="language-python highlight"><span class="bp">self</span></code> and the sign of <code class="language-python highlight"><span class="n">other</span></code>, elementwise.</p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3290</span>
|
|
<span class="normal">3291</span>
|
|
<span class="normal">3292</span>
|
|
<span class="normal">3293</span>
|
|
<span class="normal">3294</span>
|
|
<span class="normal">3295</span>
|
|
<span class="normal">3296</span>
|
|
<span class="normal">3297</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">copysign</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a tensor of with the magnitude of `self` and the sign of `other`, elementwise.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="c1"># NOTE: torch always return in float, we return based on the broadcasting rule.</span>
|
|
<span class="n">other</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_broadcasted</span><span class="p">(</span><span class="n">other</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span>
|
|
<span class="c1"># TODO: remove other*0?</span>
|
|
<span class="k">return</span> <span class="p">(</span><span class="n">other</span> <span class="o"><</span> <span class="mi">0</span><span class="p">)</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="o">-</span><span class="bp">self</span><span class="o">.</span><span class="n">abs</span><span class="p">(),</span> <span class="bp">self</span><span class="o">.</span><span class="n">abs</span><span class="p">())</span> <span class="o">+</span> <span class="n">other</span><span class="o">*</span><span class="mi">0</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.logaddexp" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">logaddexp</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.logaddexp" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">logaddexp</span><span class="p">(</span><span class="n">other</span><span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Calculates (self.exp()+other.exp()).log(), elementwise.</p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3299</span>
|
|
<span class="normal">3300</span>
|
|
<span class="normal">3301</span>
|
|
<span class="normal">3302</span>
|
|
<span class="normal">3303</span>
|
|
<span class="normal">3304</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">logaddexp</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Calculates (self.exp()+other.exp()).log(), elementwise.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">m</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">maximum</span><span class="p">(</span><span class="n">other</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="p">((</span><span class="bp">self</span><span class="o">-</span><span class="n">m</span><span class="p">)</span><span class="o">.</span><span class="n">exp</span><span class="p">()</span> <span class="o">+</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_broadcasted</span><span class="p">(</span><span class="n">other</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="n">m</span><span class="p">)</span><span class="o">.</span><span class="n">exp</span><span class="p">())</span><span class="o">.</span><span class="n">log</span><span class="p">()</span> <span class="o">+</span> <span class="n">m</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div><h2 id="casting-ops">Casting Ops<a class="headerlink" href="#casting-ops" title="Permanent link">¤</a></h2>
|
|
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.cast" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">cast</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.cast" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">cast</span><span class="p">(</span><span class="n">dtype</span><span class="p">:</span> <span class="n"><span title="tinygrad.dtype.DTypeLike">DTypeLike</span></span><span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Casts <code class="language-python highlight"><span class="bp">self</span></code> to the given <code class="language-python highlight"><span class="n">dtype</span></code>.</p>
|
|
<p><div class="language-python highlight"><pre><span></span><code><span class="n">t</span> <span class="o">=</span> <span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mf">2.5</span><span class="p">,</span> <span class="mi">3</span><span class="p">],</span> <span class="n">dtype</span><span class="o">=</span><span class="n">dtypes</span><span class="o">.</span><span class="n">float</span><span class="p">)</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">dtype</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="n">dtypes</span><span class="o">.</span><span class="n">float</span> <span class="p">[</span><span class="o">-</span><span class="mf">1.</span> <span class="mf">2.5</span> <span class="mf">3.</span> <span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="n">t</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">dtypes</span><span class="o">.</span><span class="n">int32</span><span class="p">)</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">dtype</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="n">dtypes</span><span class="o">.</span><span class="n">int</span> <span class="p">[</span><span class="o">-</span><span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="n">t</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">dtypes</span><span class="o">.</span><span class="n">uint8</span><span class="p">)</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">dtype</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="n">dtypes</span><span class="o">.</span><span class="n">uchar</span> <span class="p">[</span><span class="mi">255</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span>
|
|
</code></pre></div></p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3751</span>
|
|
<span class="normal">3752</span>
|
|
<span class="normal">3753</span>
|
|
<span class="normal">3754</span>
|
|
<span class="normal">3755</span>
|
|
<span class="normal">3756</span>
|
|
<span class="normal">3757</span>
|
|
<span class="normal">3758</span>
|
|
<span class="normal">3759</span>
|
|
<span class="normal">3760</span>
|
|
<span class="normal">3761</span>
|
|
<span class="normal">3762</span>
|
|
<span class="normal">3763</span>
|
|
<span class="normal">3764</span>
|
|
<span class="normal">3765</span>
|
|
<span class="normal">3766</span>
|
|
<span class="normal">3767</span>
|
|
<span class="normal">3768</span>
|
|
<span class="normal">3769</span>
|
|
<span class="normal">3770</span>
|
|
<span class="normal">3771</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">cast</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span><span class="n">DTypeLike</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Casts `self` to the given `dtype`.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> t = Tensor([-1, 2.5, 3], dtype=dtypes.float)</span>
|
|
<span class="sd"> print(t.dtype, t.numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> t = t.cast(dtypes.int32)</span>
|
|
<span class="sd"> print(t.dtype, t.numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> t = t.cast(dtypes.uint8)</span>
|
|
<span class="sd"> print(t.dtype, t.numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="n">dt</span><span class="o">:=</span><span class="n">to_dtype</span><span class="p">(</span><span class="n">dtype</span><span class="p">))</span> <span class="ow">in</span> <span class="p">{</span><span class="n">dtypes</span><span class="o">.</span><span class="n">uint8</span><span class="p">,</span> <span class="n">dtypes</span><span class="o">.</span><span class="n">uint16</span><span class="p">}</span> <span class="ow">and</span> <span class="n">dtypes</span><span class="o">.</span><span class="n">is_float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">):</span>
|
|
<span class="c1"># NOTE: values within the int32 range and outside the unsigned dtype range will cause values to wrap around</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_apply_uop</span><span class="p">(</span><span class="n">UOp</span><span class="o">.</span><span class="n">cast</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="n">dtypes</span><span class="o">.</span><span class="n">int32</span><span class="p">)</span><span class="o">.</span><span class="n">_apply_uop</span><span class="p">(</span><span class="n">UOp</span><span class="o">.</span><span class="n">cast</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="n">dt</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="bp">self</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dtype</span> <span class="o">==</span> <span class="n">dt</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_apply_uop</span><span class="p">(</span><span class="n">UOp</span><span class="o">.</span><span class="n">cast</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="n">dt</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.bitcast" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">bitcast</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.bitcast" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">bitcast</span><span class="p">(</span><span class="n">dtype</span><span class="p">:</span> <span class="n"><span title="tinygrad.dtype.DTypeLike">DTypeLike</span></span><span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Bitcasts <code class="language-python highlight"><span class="bp">self</span></code> to the given <code class="language-python highlight"><span class="n">dtype</span></code> of the same itemsize.</p>
|
|
<p><code class="language-python highlight"><span class="bp">self</span></code> must not require a gradient.</p>
|
|
<p><div class="language-python highlight"><pre><span></span><code><span class="n">t</span> <span class="o">=</span> <span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">],</span> <span class="n">dtype</span><span class="o">=</span><span class="n">dtypes</span><span class="o">.</span><span class="n">int32</span><span class="p">)</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">dtype</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="n">dtypes</span><span class="o">.</span><span class="n">int</span> <span class="p">[</span><span class="o">-</span><span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="n">t</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">bitcast</span><span class="p">(</span><span class="n">dtypes</span><span class="o">.</span><span class="n">uint32</span><span class="p">)</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">dtype</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="n">dtypes</span><span class="o">.</span><span class="n">uint</span> <span class="p">[</span><span class="mi">4294967295</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span>
|
|
</code></pre></div></p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3773</span>
|
|
<span class="normal">3774</span>
|
|
<span class="normal">3775</span>
|
|
<span class="normal">3776</span>
|
|
<span class="normal">3777</span>
|
|
<span class="normal">3778</span>
|
|
<span class="normal">3779</span>
|
|
<span class="normal">3780</span>
|
|
<span class="normal">3781</span>
|
|
<span class="normal">3782</span>
|
|
<span class="normal">3783</span>
|
|
<span class="normal">3784</span>
|
|
<span class="normal">3785</span>
|
|
<span class="normal">3786</span>
|
|
<span class="normal">3787</span>
|
|
<span class="normal">3788</span>
|
|
<span class="normal">3789</span>
|
|
<span class="normal">3790</span>
|
|
<span class="normal">3791</span>
|
|
<span class="normal">3792</span>
|
|
<span class="normal">3793</span>
|
|
<span class="normal">3794</span>
|
|
<span class="normal">3795</span>
|
|
<span class="normal">3796</span>
|
|
<span class="normal">3797</span>
|
|
<span class="normal">3798</span>
|
|
<span class="normal">3799</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">bitcast</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span><span class="n">DTypeLike</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Bitcasts `self` to the given `dtype` of the same itemsize.</span>
|
|
|
|
<span class="sd"> `self` must not require a gradient.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> t = Tensor([-1, 2, 3], dtype=dtypes.int32)</span>
|
|
<span class="sd"> print(t.dtype, t.numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> t = t.bitcast(dtypes.uint32)</span>
|
|
<span class="sd"> print(t.dtype, t.numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">requires_grad</span><span class="p">:</span> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">"can't backprop through bitcast"</span><span class="p">)</span>
|
|
<span class="n">dt</span> <span class="o">=</span> <span class="n">to_dtype</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="n">ns</span><span class="o">:=</span><span class="n">dt</span><span class="o">.</span><span class="n">itemsize</span><span class="p">)</span> <span class="o">!=</span> <span class="p">(</span><span class="n">os</span><span class="o">:=</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="o">.</span><span class="n">itemsize</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">*</span><span class="n">os</span><span class="p">)</span> <span class="o">%</span> <span class="n">ns</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">"unsupported size in bitcast"</span><span class="p">)</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">device</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="ow">or</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">device</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"DISK"</span><span class="p">))</span> <span class="ow">and</span> <span class="n">ns</span> <span class="o">!=</span> <span class="n">os</span><span class="p">:</span>
|
|
<span class="n">new_uint</span><span class="p">,</span> <span class="n">old_uint</span> <span class="o">=</span> <span class="n">to_dtype</span><span class="p">(</span><span class="sa">f</span><span class="s2">"uint</span><span class="si">{</span><span class="mi">8</span><span class="o">*</span><span class="n">ns</span><span class="si">}</span><span class="s2">"</span><span class="p">),</span> <span class="n">to_dtype</span><span class="p">(</span><span class="sa">f</span><span class="s2">"uint</span><span class="si">{</span><span class="mi">8</span><span class="o">*</span><span class="n">os</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
|
<span class="n">tmp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">bitcast</span><span class="p">(</span><span class="n">old_uint</span><span class="p">)</span>
|
|
<span class="k">if</span> <span class="n">ns</span> <span class="o">></span> <span class="n">os</span><span class="p">:</span>
|
|
<span class="n">tmp</span> <span class="o">=</span> <span class="n">tmp</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">shape</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">//</span><span class="p">(</span><span class="n">rate</span> <span class="o">:=</span> <span class="n">ns</span><span class="o">//</span><span class="n">os</span><span class="p">),</span> <span class="n">rate</span><span class="p">))</span>
|
|
<span class="n">nones</span> <span class="o">=</span> <span class="p">(</span><span class="kc">None</span><span class="p">,)</span> <span class="o">*</span> <span class="p">(</span><span class="n">tmp</span><span class="o">.</span><span class="n">ndim</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">functools</span><span class="o">.</span><span class="n">reduce</span><span class="p">(</span><span class="n">Tensor</span><span class="o">.</span><span class="n">add</span><span class="p">,</span> <span class="p">(</span><span class="n">tmp</span><span class="o">.</span><span class="n">shrink</span><span class="p">(</span><span class="n">nones</span> <span class="o">+</span> <span class="p">((</span><span class="n">i</span><span class="p">,</span> <span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">),))</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">new_uint</span><span class="p">)</span><span class="o"><<</span><span class="mi">8</span><span class="o">*</span><span class="n">i</span><span class="o">*</span><span class="n">os</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">rate</span><span class="p">)))</span><span class="o">.</span><span class="n">squeeze</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">bitcast</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">Tensor</span><span class="o">.</span><span class="n">stack</span><span class="p">(</span><span class="o">*</span><span class="p">(</span><span class="n">tmp</span><span class="o">>></span><span class="mi">8</span><span class="o">*</span><span class="n">i</span><span class="o">*</span><span class="n">ns</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">os</span><span class="o">//</span><span class="n">ns</span><span class="p">)),</span> <span class="n">dim</span><span class="o">=-</span><span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">flatten</span><span class="p">(</span><span class="o">-</span><span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">new_uint</span><span class="p">)</span><span class="o">.</span><span class="n">bitcast</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_apply_uop</span><span class="p">(</span><span class="n">UOp</span><span class="o">.</span><span class="n">bitcast</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="n">dt</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dtype</span> <span class="o">!=</span> <span class="n">dt</span> <span class="k">else</span> <span class="bp">self</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.float" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">float</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.float" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">float</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Convenience method to cast <code class="language-python highlight"><span class="bp">self</span></code> to a <code class="language-python highlight"><span class="n">float32</span></code> Tensor.</p>
|
|
<p><div class="language-python highlight"><pre><span></span><code><span class="n">t</span> <span class="o">=</span> <span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">],</span> <span class="n">dtype</span><span class="o">=</span><span class="n">dtypes</span><span class="o">.</span><span class="n">int32</span><span class="p">)</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">dtype</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="n">dtypes</span><span class="o">.</span><span class="n">int</span> <span class="p">[</span><span class="o">-</span><span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="n">t</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">float</span><span class="p">()</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">dtype</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="n">dtypes</span><span class="o">.</span><span class="n">float</span> <span class="p">[</span><span class="o">-</span><span class="mf">1.</span> <span class="mf">2.</span> <span class="mf">3.</span><span class="p">]</span>
|
|
</code></pre></div></p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3801</span>
|
|
<span class="normal">3802</span>
|
|
<span class="normal">3803</span>
|
|
<span class="normal">3804</span>
|
|
<span class="normal">3805</span>
|
|
<span class="normal">3806</span>
|
|
<span class="normal">3807</span>
|
|
<span class="normal">3808</span>
|
|
<span class="normal">3809</span>
|
|
<span class="normal">3810</span>
|
|
<span class="normal">3811</span>
|
|
<span class="normal">3812</span>
|
|
<span class="normal">3813</span>
|
|
<span class="normal">3814</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">float</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Convenience method to cast `self` to a `float32` Tensor.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> t = Tensor([-1, 2, 3], dtype=dtypes.int32)</span>
|
|
<span class="sd"> print(t.dtype, t.numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> t = t.float()</span>
|
|
<span class="sd"> print(t.dtype, t.numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">dtypes</span><span class="o">.</span><span class="n">float32</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.half" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">half</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.half" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">half</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Convenience method to cast <code class="language-python highlight"><span class="bp">self</span></code> to a <code class="language-python highlight"><span class="n">float16</span></code> Tensor.</p>
|
|
<p><div class="language-python highlight"><pre><span></span><code><span class="n">t</span> <span class="o">=</span> <span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">],</span> <span class="n">dtype</span><span class="o">=</span><span class="n">dtypes</span><span class="o">.</span><span class="n">int32</span><span class="p">)</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">dtype</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="n">dtypes</span><span class="o">.</span><span class="n">int</span> <span class="p">[</span><span class="o">-</span><span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="n">t</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">half</span><span class="p">()</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">dtype</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="n">dtypes</span><span class="o">.</span><span class="n">half</span> <span class="p">[</span><span class="o">-</span><span class="mf">1.</span> <span class="mf">2.</span> <span class="mf">3.</span><span class="p">]</span>
|
|
</code></pre></div></p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3816</span>
|
|
<span class="normal">3817</span>
|
|
<span class="normal">3818</span>
|
|
<span class="normal">3819</span>
|
|
<span class="normal">3820</span>
|
|
<span class="normal">3821</span>
|
|
<span class="normal">3822</span>
|
|
<span class="normal">3823</span>
|
|
<span class="normal">3824</span>
|
|
<span class="normal">3825</span>
|
|
<span class="normal">3826</span>
|
|
<span class="normal">3827</span>
|
|
<span class="normal">3828</span>
|
|
<span class="normal">3829</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">half</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Convenience method to cast `self` to a `float16` Tensor.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> t = Tensor([-1, 2, 3], dtype=dtypes.int32)</span>
|
|
<span class="sd"> print(t.dtype, t.numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> t = t.half()</span>
|
|
<span class="sd"> print(t.dtype, t.numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">dtypes</span><span class="o">.</span><span class="n">float16</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.int" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">int</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.int" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">int</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Convenience method to cast <code class="language-python highlight"><span class="bp">self</span></code> to a <code class="language-python highlight"><span class="n">int32</span></code> Tensor.</p>
|
|
<p><div class="language-python highlight"><pre><span></span><code><span class="n">t</span> <span class="o">=</span> <span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mf">1.5</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.5</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">])</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">dtype</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="n">dtypes</span><span class="o">.</span><span class="n">float</span> <span class="p">[</span><span class="o">-</span><span class="mf">1.5</span> <span class="o">-</span><span class="mf">0.5</span> <span class="mf">0.</span> <span class="mf">0.5</span> <span class="mf">1.5</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="n">t</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">int</span><span class="p">()</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">dtype</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="n">dtypes</span><span class="o">.</span><span class="n">int</span> <span class="p">[</span><span class="o">-</span><span class="mi">1</span> <span class="mi">0</span> <span class="mi">0</span> <span class="mi">0</span> <span class="mi">1</span><span class="p">]</span>
|
|
</code></pre></div></p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3831</span>
|
|
<span class="normal">3832</span>
|
|
<span class="normal">3833</span>
|
|
<span class="normal">3834</span>
|
|
<span class="normal">3835</span>
|
|
<span class="normal">3836</span>
|
|
<span class="normal">3837</span>
|
|
<span class="normal">3838</span>
|
|
<span class="normal">3839</span>
|
|
<span class="normal">3840</span>
|
|
<span class="normal">3841</span>
|
|
<span class="normal">3842</span>
|
|
<span class="normal">3843</span>
|
|
<span class="normal">3844</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">int</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Convenience method to cast `self` to a `int32` Tensor.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> t = Tensor([-1.5, -0.5, 0.0, 0.5, 1.5])</span>
|
|
<span class="sd"> print(t.dtype, t.numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> t = t.int()</span>
|
|
<span class="sd"> print(t.dtype, t.numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">dtypes</span><span class="o">.</span><span class="n">int32</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.bool" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">bool</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.bool" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">bool</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">Tensor</span> (<code>tinygrad.tensor.Tensor</code>)" href="../#tinygrad.Tensor">Tensor</a></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Convenience method to cast <code class="language-python highlight"><span class="bp">self</span></code> to a <code class="language-python highlight"><span class="nb">bool</span></code> Tensor.</p>
|
|
<p><div class="language-python highlight"><pre><span></span><code><span class="n">t</span> <span class="o">=</span> <span class="n">Tensor</span><span class="p">([</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">])</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">dtype</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="n">dtypes</span><span class="o">.</span><span class="n">int</span> <span class="p">[</span><span class="o">-</span><span class="mi">1</span> <span class="mi">0</span> <span class="mi">1</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="n">t</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">bool</span><span class="p">()</span>
|
|
<span class="nb">print</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">dtype</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
|
</code></pre></div>
|
|
<div class="language-python highlight"><pre><span></span><code><span class="n">dtypes</span><span class="o">.</span><span class="n">bool</span> <span class="p">[</span> <span class="kc">True</span> <span class="kc">False</span> <span class="kc">True</span><span class="p">]</span>
|
|
</code></pre></div></p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/tensor.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">3846</span>
|
|
<span class="normal">3847</span>
|
|
<span class="normal">3848</span>
|
|
<span class="normal">3849</span>
|
|
<span class="normal">3850</span>
|
|
<span class="normal">3851</span>
|
|
<span class="normal">3852</span>
|
|
<span class="normal">3853</span>
|
|
<span class="normal">3854</span>
|
|
<span class="normal">3855</span>
|
|
<span class="normal">3856</span>
|
|
<span class="normal">3857</span>
|
|
<span class="normal">3858</span>
|
|
<span class="normal">3859</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">bool</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Convenience method to cast `self` to a `bool` Tensor.</span>
|
|
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> t = Tensor([-1, 0, 1])</span>
|
|
<span class="sd"> print(t.dtype, t.numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> ```python exec="true" source="above" session="tensor" result="python"</span>
|
|
<span class="sd"> t = t.bool()</span>
|
|
<span class="sd"> print(t.dtype, t.numpy())</span>
|
|
<span class="sd"> ```</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">dtypes</span><span class="o">.</span><span class="n">bool</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</article>
|
|
</div>
|
|
|
|
|
|
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
|
</div>
|
|
|
|
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
|
|
Back to top
|
|
</button>
|
|
|
|
</main>
|
|
|
|
<footer class="md-footer">
|
|
|
|
|
|
|
|
<nav class="md-footer__inner md-grid" aria-label="Footer" >
|
|
|
|
|
|
<a href="../movement/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Movement">
|
|
<div class="md-footer__button md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
|
|
</div>
|
|
<div class="md-footer__title">
|
|
<span class="md-footer__direction">
|
|
Previous
|
|
</span>
|
|
<div class="md-ellipsis">
|
|
Movement
|
|
</div>
|
|
</div>
|
|
</a>
|
|
|
|
|
|
|
|
<a href="../ops/" class="md-footer__link md-footer__link--next" aria-label="Next: Complex Ops">
|
|
<div class="md-footer__title">
|
|
<span class="md-footer__direction">
|
|
Next
|
|
</span>
|
|
<div class="md-ellipsis">
|
|
Complex Ops
|
|
</div>
|
|
</div>
|
|
<div class="md-footer__button md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg>
|
|
</div>
|
|
</a>
|
|
|
|
</nav>
|
|
|
|
|
|
<div class="md-footer-meta md-typeset">
|
|
<div class="md-footer-meta__inner md-grid">
|
|
<div class="md-copyright">
|
|
|
|
|
|
Made with
|
|
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
|
Material for MkDocs
|
|
</a>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
|
|
</div>
|
|
<div class="md-dialog" data-md-component="dialog">
|
|
<div class="md-dialog__inner md-typeset"></div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<script id="__config" type="application/json">{"annotate": null, "base": "../..", "features": ["announce.dismiss", "content.action.edit", "content.action.view", "content.code.annotate", "content.code.copy", "content.tooltips", "navigation.footer", "navigation.indexes", "navigation.sections", "navigation.expand", "navigation.top", "navigation.path", "search.highlight", "search.suggest", "toc.follow", "toc.integrate"], "search": "../../assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
|
|
|
|
|
|
<script src="../../assets/javascripts/bundle.79ae519e.min.js"></script>
|
|
|
|
<script src="../../assets/_markdown_exec_pyodide.js"></script>
|
|
|
|
|
|
</body>
|
|
</html> |