mirror of
https://github.com/tinygrad/tinygrad.git
synced 2026-06-10 23:17:20 +08:00
6897 lines
446 KiB
HTML
6897 lines
446 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.6">
|
|
|
|
|
|
|
|
<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.log10" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> log10
|
|
|
|
</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.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.fmod" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> fmod
|
|
|
|
</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>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.bfloat16" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> bfloat16
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.double" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> double
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.long" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> long
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#tinygrad.Tensor.short" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> short
|
|
|
|
</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 md-nav__item--nested">
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_1_5_5" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_1_5_5" id="__nav_1_5_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_5_5_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_1_5_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="../../runtime/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Runtimes
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../tinygpu/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
egpu for mac
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">34</span>
|
|
<span class="normal">35</span>
|
|
<span class="normal">36</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></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">Self</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">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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">52</span>
|
|
<span class="normal">53</span>
|
|
<span class="normal">54</span>
|
|
<span class="normal">55</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></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">Self</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="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">scalar</span><span class="p">()</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="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.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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">807</span>
|
|
<span class="normal">808</span>
|
|
<span class="normal">809</span>
|
|
<span class="normal">810</span>
|
|
<span class="normal">811</span>
|
|
<span class="normal">812</span>
|
|
<span class="normal">813</span>
|
|
<span class="normal">814</span>
|
|
<span class="normal">815</span>
|
|
<span class="normal">816</span>
|
|
<span class="normal">817</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">Self</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></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>
|
|
<span class="normal">507</span>
|
|
<span class="normal">508</span>
|
|
<span class="normal">509</span>
|
|
<span class="normal">510</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">Self</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">_ensure_float</span><span class="p">()</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">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.log10" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">log10</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.log10" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">log10</span><span class="p">()</span> <span class="o">-></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>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Computes the base-10 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">log10</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.301</span> <span class="mf">0.6021</span> <span class="mf">0.9031</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">819</span>
|
|
<span class="normal">820</span>
|
|
<span class="normal">821</span>
|
|
<span class="normal">822</span>
|
|
<span class="normal">823</span>
|
|
<span class="normal">824</span>
|
|
<span class="normal">825</span>
|
|
<span class="normal">826</span>
|
|
<span class="normal">827</span>
|
|
<span class="normal">828</span>
|
|
<span class="normal">829</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">log10</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Self</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Computes the base-10 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.]).log10().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">log10</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.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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></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>
|
|
<span class="normal">495</span>
|
|
<span class="normal">496</span>
|
|
<span class="normal">497</span>
|
|
<span class="normal">498</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">Self</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="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="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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></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>
|
|
<span class="normal">517</span>
|
|
<span class="normal">518</span>
|
|
<span class="normal">519</span>
|
|
<span class="normal">520</span>
|
|
<span class="normal">521</span>
|
|
<span class="normal">522</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">Self</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">_ensure_float</span><span class="p">()</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">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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></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>
|
|
<span class="normal">461</span>
|
|
<span class="normal">462</span>
|
|
<span class="normal">463</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">Self</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">_ensure_float</span><span class="p">()</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">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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">797</span>
|
|
<span class="normal">798</span>
|
|
<span class="normal">799</span>
|
|
<span class="normal">800</span>
|
|
<span class="normal">801</span>
|
|
<span class="normal">802</span>
|
|
<span class="normal">803</span>
|
|
<span class="normal">804</span>
|
|
<span class="normal">805</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="o">-></span> <span class="n">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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></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>
|
|
<span class="normal">471</span>
|
|
<span class="normal">472</span>
|
|
<span class="normal">473</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">Self</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">_ensure_float</span><span class="p">()</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">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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></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>
|
|
<span class="normal">483</span>
|
|
<span class="normal">484</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">Self</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">897</span>
|
|
<span class="normal">898</span>
|
|
<span class="normal">899</span>
|
|
<span class="normal">900</span>
|
|
<span class="normal">901</span>
|
|
<span class="normal">902</span>
|
|
<span class="normal">903</span>
|
|
<span class="normal">904</span>
|
|
<span class="normal">905</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">Self</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">907</span>
|
|
<span class="normal">908</span>
|
|
<span class="normal">909</span>
|
|
<span class="normal">910</span>
|
|
<span class="normal">911</span>
|
|
<span class="normal">912</span>
|
|
<span class="normal">913</span>
|
|
<span class="normal">914</span>
|
|
<span class="normal">915</span>
|
|
<span class="normal">916</span>
|
|
<span class="normal">917</span>
|
|
<span class="normal">918</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">Self</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">920</span>
|
|
<span class="normal">921</span>
|
|
<span class="normal">922</span>
|
|
<span class="normal">923</span>
|
|
<span class="normal">924</span>
|
|
<span class="normal">925</span>
|
|
<span class="normal">926</span>
|
|
<span class="normal">927</span>
|
|
<span class="normal">928</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">Self</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">930</span>
|
|
<span class="normal">931</span>
|
|
<span class="normal">932</span>
|
|
<span class="normal">933</span>
|
|
<span class="normal">934</span>
|
|
<span class="normal">935</span>
|
|
<span class="normal">936</span>
|
|
<span class="normal">937</span>
|
|
<span class="normal">938</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">Self</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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">445</span>
|
|
<span class="normal">446</span>
|
|
<span class="normal">447</span>
|
|
<span class="normal">448</span>
|
|
<span class="normal">449</span>
|
|
<span class="normal">450</span>
|
|
<span class="normal">451</span>
|
|
<span class="normal">452</span>
|
|
<span class="normal">453</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="o">-></span> <span class="n">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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">631</span>
|
|
<span class="normal">632</span>
|
|
<span class="normal">633</span>
|
|
<span class="normal">634</span>
|
|
<span class="normal">635</span>
|
|
<span class="normal">636</span>
|
|
<span class="normal">637</span>
|
|
<span class="normal">638</span>
|
|
<span class="normal">639</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="o">-></span> <span class="n">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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">641</span>
|
|
<span class="normal">642</span>
|
|
<span class="normal">643</span>
|
|
<span class="normal">644</span>
|
|
<span class="normal">645</span>
|
|
<span class="normal">646</span>
|
|
<span class="normal">647</span>
|
|
<span class="normal">648</span>
|
|
<span class="normal">649</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="o">-></span> <span class="n">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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">867</span>
|
|
<span class="normal">868</span>
|
|
<span class="normal">869</span>
|
|
<span class="normal">870</span>
|
|
<span class="normal">871</span>
|
|
<span class="normal">872</span>
|
|
<span class="normal">873</span>
|
|
<span class="normal">874</span>
|
|
<span class="normal">875</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="o">-></span> <span class="n">Self</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="n">eq</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">eq</span><span class="p">(</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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">591</span>
|
|
<span class="normal">592</span>
|
|
<span class="normal">593</span>
|
|
<span class="normal">594</span>
|
|
<span class="normal">595</span>
|
|
<span class="normal">596</span>
|
|
<span class="normal">597</span>
|
|
<span class="normal">598</span>
|
|
<span class="normal">599</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="o">-></span> <span class="n">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 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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">581</span>
|
|
<span class="normal">582</span>
|
|
<span class="normal">583</span>
|
|
<span class="normal">584</span>
|
|
<span class="normal">585</span>
|
|
<span class="normal">586</span>
|
|
<span class="normal">587</span>
|
|
<span class="normal">588</span>
|
|
<span class="normal">589</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="o">-></span> <span class="n">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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">601</span>
|
|
<span class="normal">602</span>
|
|
<span class="normal">603</span>
|
|
<span class="normal">604</span>
|
|
<span class="normal">605</span>
|
|
<span class="normal">606</span>
|
|
<span class="normal">607</span>
|
|
<span class="normal">608</span>
|
|
<span class="normal">609</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="o">-></span> <span class="n">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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</a></span><span class="p">,</span> <span class="n">weight</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="o">-></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>
|
|
</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1058</span>
|
|
<span class="normal">1059</span>
|
|
<span class="normal">1060</span>
|
|
<span class="normal">1061</span>
|
|
<span class="normal">1062</span>
|
|
<span class="normal">1063</span>
|
|
<span class="normal">1064</span>
|
|
<span class="normal">1065</span>
|
|
<span class="normal">1066</span>
|
|
<span class="normal">1067</span>
|
|
<span class="normal">1068</span>
|
|
<span class="normal">1069</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">Self</span><span class="p">,</span> <span class="n">weight</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="o">-></span> <span class="n">Self</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">ElementwiseMixin</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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">553</span>
|
|
<span class="normal">554</span>
|
|
<span class="normal">555</span>
|
|
<span class="normal">556</span>
|
|
<span class="normal">557</span>
|
|
<span class="normal">558</span>
|
|
<span class="normal">559</span>
|
|
<span class="normal">560</span>
|
|
<span class="normal">561</span>
|
|
<span class="normal">562</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="o">-></span> <span class="n">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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">564</span>
|
|
<span class="normal">565</span>
|
|
<span class="normal">566</span>
|
|
<span class="normal">567</span>
|
|
<span class="normal">568</span>
|
|
<span class="normal">569</span>
|
|
<span class="normal">570</span>
|
|
<span class="normal">571</span>
|
|
<span class="normal">572</span>
|
|
<span class="normal">573</span>
|
|
<span class="normal">574</span>
|
|
<span class="normal">575</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="o">-></span> <span class="n">Self</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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">577</span>
|
|
<span class="normal">578</span>
|
|
<span class="normal">579</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="o">-></span> <span class="n">Self</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">877</span>
|
|
<span class="normal">878</span>
|
|
<span class="normal">879</span>
|
|
<span class="normal">880</span>
|
|
<span class="normal">881</span>
|
|
<span class="normal">882</span>
|
|
<span class="normal">883</span>
|
|
<span class="normal">884</span>
|
|
<span class="normal">885</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">Self</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">const_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">const_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">const_like</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.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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">887</span>
|
|
<span class="normal">888</span>
|
|
<span class="normal">889</span>
|
|
<span class="normal">890</span>
|
|
<span class="normal">891</span>
|
|
<span class="normal">892</span>
|
|
<span class="normal">893</span>
|
|
<span class="normal">894</span>
|
|
<span class="normal">895</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">Self</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">435</span>
|
|
<span class="normal">436</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></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">Self</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">_ensure_float</span><span class="p">()</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">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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">651</span>
|
|
<span class="normal">652</span>
|
|
<span class="normal">653</span>
|
|
<span class="normal">654</span>
|
|
<span class="normal">655</span>
|
|
<span class="normal">656</span>
|
|
<span class="normal">657</span>
|
|
<span class="normal">658</span>
|
|
<span class="normal">659</span>
|
|
<span class="normal">660</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="o">-></span> <span class="n">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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">662</span>
|
|
<span class="normal">663</span>
|
|
<span class="normal">664</span>
|
|
<span class="normal">665</span>
|
|
<span class="normal">666</span>
|
|
<span class="normal">667</span>
|
|
<span class="normal">668</span>
|
|
<span class="normal">669</span>
|
|
<span class="normal">670</span>
|
|
<span class="normal">671</span>
|
|
<span class="normal">672</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="o">-></span> <span class="n">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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 998</span>
|
|
<span class="normal"> 999</span>
|
|
<span class="normal">1000</span>
|
|
<span class="normal">1001</span>
|
|
<span class="normal">1002</span>
|
|
<span class="normal">1003</span>
|
|
<span class="normal">1004</span>
|
|
<span class="normal">1005</span>
|
|
<span class="normal">1006</span>
|
|
<span class="normal">1007</span>
|
|
<span class="normal">1008</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">Self</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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">698</span>
|
|
<span class="normal">699</span>
|
|
<span class="normal">700</span>
|
|
<span class="normal">701</span>
|
|
<span class="normal">702</span>
|
|
<span class="normal">703</span>
|
|
<span class="normal">704</span>
|
|
<span class="normal">705</span>
|
|
<span class="normal">706</span>
|
|
<span class="normal">707</span>
|
|
<span class="normal">708</span>
|
|
<span class="normal">709</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="o">-></span> <span class="n">Self</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">940</span>
|
|
<span class="normal">941</span>
|
|
<span class="normal">942</span>
|
|
<span class="normal">943</span>
|
|
<span class="normal">944</span>
|
|
<span class="normal">945</span>
|
|
<span class="normal">946</span>
|
|
<span class="normal">947</span>
|
|
<span class="normal">948</span>
|
|
<span class="normal">949</span>
|
|
<span class="normal">950</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">Self</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">952</span>
|
|
<span class="normal">953</span>
|
|
<span class="normal">954</span>
|
|
<span class="normal">955</span>
|
|
<span class="normal">956</span>
|
|
<span class="normal">957</span>
|
|
<span class="normal">958</span>
|
|
<span class="normal">959</span>
|
|
<span class="normal">960</span>
|
|
<span class="normal">961</span>
|
|
<span class="normal">962</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">Self</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">964</span>
|
|
<span class="normal">965</span>
|
|
<span class="normal">966</span>
|
|
<span class="normal">967</span>
|
|
<span class="normal">968</span>
|
|
<span class="normal">969</span>
|
|
<span class="normal">970</span>
|
|
<span class="normal">971</span>
|
|
<span class="normal">972</span>
|
|
<span class="normal">973</span>
|
|
<span class="normal">974</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">Self</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">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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">773</span>
|
|
<span class="normal">774</span>
|
|
<span class="normal">775</span>
|
|
<span class="normal">776</span>
|
|
<span class="normal">777</span>
|
|
<span class="normal">778</span>
|
|
<span class="normal">779</span>
|
|
<span class="normal">780</span>
|
|
<span class="normal">781</span>
|
|
<span class="normal">782</span>
|
|
<span class="normal">783</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="o">-></span> <span class="n">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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">785</span>
|
|
<span class="normal">786</span>
|
|
<span class="normal">787</span>
|
|
<span class="normal">788</span>
|
|
<span class="normal">789</span>
|
|
<span class="normal">790</span>
|
|
<span class="normal">791</span>
|
|
<span class="normal">792</span>
|
|
<span class="normal">793</span>
|
|
<span class="normal">794</span>
|
|
<span class="normal">795</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="o">-></span> <span class="n">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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">674</span>
|
|
<span class="normal">675</span>
|
|
<span class="normal">676</span>
|
|
<span class="normal">677</span>
|
|
<span class="normal">678</span>
|
|
<span class="normal">679</span>
|
|
<span class="normal">680</span>
|
|
<span class="normal">681</span>
|
|
<span class="normal">682</span>
|
|
<span class="normal">683</span>
|
|
<span class="normal">684</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="o">-></span> <span class="n">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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">686</span>
|
|
<span class="normal">687</span>
|
|
<span class="normal">688</span>
|
|
<span class="normal">689</span>
|
|
<span class="normal">690</span>
|
|
<span class="normal">691</span>
|
|
<span class="normal">692</span>
|
|
<span class="normal">693</span>
|
|
<span class="normal">694</span>
|
|
<span class="normal">695</span>
|
|
<span class="normal">696</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="o">-></span> <span class="n">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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">734</span>
|
|
<span class="normal">735</span>
|
|
<span class="normal">736</span>
|
|
<span class="normal">737</span>
|
|
<span class="normal">738</span>
|
|
<span class="normal">739</span>
|
|
<span class="normal">740</span>
|
|
<span class="normal">741</span>
|
|
<span class="normal">742</span>
|
|
<span class="normal">743</span>
|
|
<span class="normal">744</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="o">-></span> <span class="n">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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1010</span>
|
|
<span class="normal">1011</span>
|
|
<span class="normal">1012</span>
|
|
<span class="normal">1013</span>
|
|
<span class="normal">1014</span>
|
|
<span class="normal">1015</span>
|
|
<span class="normal">1016</span>
|
|
<span class="normal">1017</span>
|
|
<span class="normal">1018</span>
|
|
<span class="normal">1019</span>
|
|
<span class="normal">1020</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">Self</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1022</span>
|
|
<span class="normal">1023</span>
|
|
<span class="normal">1024</span>
|
|
<span class="normal">1025</span>
|
|
<span class="normal">1026</span>
|
|
<span class="normal">1027</span>
|
|
<span class="normal">1028</span>
|
|
<span class="normal">1029</span>
|
|
<span class="normal">1030</span>
|
|
<span class="normal">1031</span>
|
|
<span class="normal">1032</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">Self</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">831</span>
|
|
<span class="normal">832</span>
|
|
<span class="normal">833</span>
|
|
<span class="normal">834</span>
|
|
<span class="normal">835</span>
|
|
<span class="normal">836</span>
|
|
<span class="normal">837</span>
|
|
<span class="normal">838</span>
|
|
<span class="normal">839</span>
|
|
<span class="normal">840</span>
|
|
<span class="normal">841</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">Self</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">843</span>
|
|
<span class="normal">844</span>
|
|
<span class="normal">845</span>
|
|
<span class="normal">846</span>
|
|
<span class="normal">847</span>
|
|
<span class="normal">848</span>
|
|
<span class="normal">849</span>
|
|
<span class="normal">850</span>
|
|
<span class="normal">851</span>
|
|
<span class="normal">852</span>
|
|
<span class="normal">853</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">Self</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">855</span>
|
|
<span class="normal">856</span>
|
|
<span class="normal">857</span>
|
|
<span class="normal">858</span>
|
|
<span class="normal">859</span>
|
|
<span class="normal">860</span>
|
|
<span class="normal">861</span>
|
|
<span class="normal">862</span>
|
|
<span class="normal">863</span>
|
|
<span class="normal">864</span>
|
|
<span class="normal">865</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">Self</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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">711</span>
|
|
<span class="normal">712</span>
|
|
<span class="normal">713</span>
|
|
<span class="normal">714</span>
|
|
<span class="normal">715</span>
|
|
<span class="normal">716</span>
|
|
<span class="normal">717</span>
|
|
<span class="normal">718</span>
|
|
<span class="normal">719</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="o">-></span> <span class="n">Self</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1034</span>
|
|
<span class="normal">1035</span>
|
|
<span class="normal">1036</span>
|
|
<span class="normal">1037</span>
|
|
<span class="normal">1038</span>
|
|
<span class="normal">1039</span>
|
|
<span class="normal">1040</span>
|
|
<span class="normal">1041</span>
|
|
<span class="normal">1042</span>
|
|
<span class="normal">1043</span>
|
|
<span class="normal">1044</span>
|
|
<span class="normal">1045</span>
|
|
<span class="normal">1046</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">Self</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><span class="n">approximate</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span> <span class="o">=</span> <span class="s1">'tanh'</span><span class="p">)</span> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">756</span>
|
|
<span class="normal">757</span>
|
|
<span class="normal">758</span>
|
|
<span class="normal">759</span>
|
|
<span class="normal">760</span>
|
|
<span class="normal">761</span>
|
|
<span class="normal">762</span>
|
|
<span class="normal">763</span>
|
|
<span class="normal">764</span>
|
|
<span class="normal">765</span>
|
|
<span class="normal">766</span>
|
|
<span class="normal">767</span>
|
|
<span class="normal">768</span>
|
|
<span class="normal">769</span>
|
|
<span class="normal">770</span>
|
|
<span class="normal">771</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="n">approximate</span><span class="p">:</span><span class="nb">str</span><span class="o">=</span><span class="s2">"tanh"</span><span class="p">)</span> <span class="o">-></span> <span class="n">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">if</span> <span class="n">approximate</span> <span class="o">==</span> <span class="s2">"tanh"</span><span class="p">:</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>
|
|
<span class="k">elif</span> <span class="n">approximate</span> <span class="o">==</span> <span class="s2">"none"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span> <span class="o">*</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="p">(</span><span class="mf">1.0</span> <span class="o">+</span> <span class="p">(</span><span class="bp">self</span> <span class="o">/</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="p">))</span><span class="o">.</span><span class="n">erf</span><span class="p">())</span>
|
|
<span class="k">else</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">approximate</span><span class="si">=}</span><span class="s2"> is not supported"</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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">746</span>
|
|
<span class="normal">747</span>
|
|
<span class="normal">748</span>
|
|
<span class="normal">749</span>
|
|
<span class="normal">750</span>
|
|
<span class="normal">751</span>
|
|
<span class="normal">752</span>
|
|
<span class="normal">753</span>
|
|
<span class="normal">754</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="o">-></span> <span class="n">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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">721</span>
|
|
<span class="normal">722</span>
|
|
<span class="normal">723</span>
|
|
<span class="normal">724</span>
|
|
<span class="normal">725</span>
|
|
<span class="normal">726</span>
|
|
<span class="normal">727</span>
|
|
<span class="normal">728</span>
|
|
<span class="normal">729</span>
|
|
<span class="normal">730</span>
|
|
<span class="normal">731</span>
|
|
<span class="normal">732</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="o">-></span> <span class="n">Self</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">986</span>
|
|
<span class="normal">987</span>
|
|
<span class="normal">988</span>
|
|
<span class="normal">989</span>
|
|
<span class="normal">990</span>
|
|
<span class="normal">991</span>
|
|
<span class="normal">992</span>
|
|
<span class="normal">993</span>
|
|
<span class="normal">994</span>
|
|
<span class="normal">995</span>
|
|
<span class="normal">996</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">Self</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">976</span>
|
|
<span class="normal">977</span>
|
|
<span class="normal">978</span>
|
|
<span class="normal">979</span>
|
|
<span class="normal">980</span>
|
|
<span class="normal">981</span>
|
|
<span class="normal">982</span>
|
|
<span class="normal">983</span>
|
|
<span class="normal">984</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">Self</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1048</span>
|
|
<span class="normal">1049</span>
|
|
<span class="normal">1050</span>
|
|
<span class="normal">1051</span>
|
|
<span class="normal">1052</span>
|
|
<span class="normal">1053</span>
|
|
<span class="normal">1054</span>
|
|
<span class="normal">1055</span>
|
|
<span class="normal">1056</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">Self</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> <span class="o">-></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>
|
|
</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="mf">0.6226</span> <span class="mf">0.1706</span> <span class="mf">0.8297</span> <span class="mf">0.3067</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">20.6226</span> <span class="mf">20.1706</span> <span class="mf">20.8297</span> <span class="mf">20.3067</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">2.6226</span> <span class="mf">2.1706</span> <span class="mf">2.8297</span> <span class="mf">2.3067</span><span class="p">]</span>
|
|
<span class="p">[</span><span class="mf">4.1226</span> <span class="mf">3.6706</span> <span class="mf">4.3297</span> <span class="mf">3.8067</span><span class="p">]]</span>
|
|
</code></pre></div></p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></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>
|
|
<span class="normal">75</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></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="o">-></span> <span class="n">Self</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-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> <span class="o">-></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>
|
|
</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="mf">0.6226</span> <span class="mf">0.1706</span> <span class="mf">0.8297</span> <span class="mf">0.3067</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">19.3774</span> <span class="o">-</span><span class="mf">19.8294</span> <span class="o">-</span><span class="mf">19.1703</span> <span class="o">-</span><span class="mf">19.6933</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">1.3774</span> <span class="o">-</span><span class="mf">1.8294</span> <span class="o">-</span><span class="mf">1.1703</span> <span class="o">-</span><span class="mf">1.6933</span><span class="p">]</span>
|
|
<span class="p">[</span><span class="o">-</span><span class="mf">2.8774</span> <span class="o">-</span><span class="mf">3.3294</span> <span class="o">-</span><span class="mf">2.6703</span> <span class="o">-</span><span class="mf">3.1933</span><span class="p">]]</span>
|
|
</code></pre></div></p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></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>
|
|
<span class="normal"> 90</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">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">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="o">-></span> <span class="n">Self</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> <span class="o">-></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>
|
|
</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="mf">0.6226</span> <span class="mf">0.1706</span> <span class="mf">0.8297</span> <span class="mf">0.3067</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="mf">1.8678</span> <span class="mf">0.5117</span> <span class="mf">2.4891</span> <span class="mf">0.9202</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="o">-</span><span class="mf">0.6226</span> <span class="o">-</span><span class="mf">0.1706</span> <span class="o">-</span><span class="mf">0.8297</span> <span class="o">-</span><span class="mf">0.3067</span><span class="p">]</span>
|
|
<span class="p">[</span> <span class="mf">1.2452</span> <span class="mf">0.3412</span> <span class="mf">1.6594</span> <span class="mf">0.6135</span><span class="p">]]</span>
|
|
</code></pre></div></p>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/elementwise.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>
|
|
<span class="normal">121</span>
|
|
<span class="normal">122</span>
|
|
<span class="normal">123</span>
|
|
<span class="normal">124</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="o">-></span> <span class="n">Self</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-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>
|
|
<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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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 by default; pass <code class="language-python highlight"><span class="n">rounding_mode</span><span class="o">=</span><span class="s2">"trunc"</span></code> for truncating toward zero
|
|
or <code class="language-python highlight"><span class="n">rounding_mode</span><span class="o">=</span><span class="s2">"floor"</span></code> for floor 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="mf">0.6226</span> <span class="mf">0.1706</span> <span class="mf">0.8297</span> <span class="mf">0.3067</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="mf">0.2075</span> <span class="mf">0.0569</span> <span class="mf">0.2766</span> <span class="mf">0.1022</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">214</span>
|
|
<span class="normal">215</span>
|
|
<span class="normal">216</span>
|
|
<span class="normal">217</span>
|
|
<span class="normal">218</span>
|
|
<span class="normal">219</span>
|
|
<span class="normal">220</span>
|
|
<span class="normal">221</span>
|
|
<span class="normal">222</span>
|
|
<span class="normal">223</span>
|
|
<span class="normal">224</span>
|
|
<span class="normal">225</span>
|
|
<span class="normal">226</span>
|
|
<span class="normal">227</span>
|
|
<span class="normal">228</span>
|
|
<span class="normal">229</span>
|
|
<span class="normal">230</span>
|
|
<span class="normal">231</span>
|
|
<span class="normal">232</span>
|
|
<span class="normal">233</span>
|
|
<span class="normal">234</span>
|
|
<span class="normal">235</span>
|
|
<span class="normal">236</span>
|
|
<span class="normal">237</span>
|
|
<span class="normal">238</span>
|
|
<span class="normal">239</span>
|
|
<span class="normal">240</span>
|
|
<span class="normal">241</span>
|
|
<span class="normal">242</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">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="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">Self</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 by default; pass `rounding_mode="trunc"` for truncating toward zero</span>
|
|
<span class="sd"> or `rounding_mode="floor"` for floor 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">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">if</span> <span class="n">dtypes</span><span class="o">.</span><span class="n">is_int</span><span class="p">(</span><span class="n">a</span><span class="o">.</span><span class="n">dtype</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">a</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">CDIV</span><span class="p">,</span> <span class="n">b</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">a</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">FLOORDIV</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
<span class="n">d</span> <span class="o">=</span> <span class="n">a</span> <span class="o">*</span> <span class="n">b</span><span class="o">.</span><span class="n">reciprocal</span><span class="p">()</span>
|
|
<span class="k">if</span> <span class="n">rounding_mode</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="k">return</span> <span class="n">d</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="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="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>
|
|
</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-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> <span class="o">-></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>
|
|
</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">187</span>
|
|
<span class="normal">188</span>
|
|
<span class="normal">189</span>
|
|
<span class="normal">190</span>
|
|
<span class="normal">191</span>
|
|
<span class="normal">192</span>
|
|
<span class="normal">193</span>
|
|
<span class="normal">194</span>
|
|
<span class="normal">195</span>
|
|
<span class="normal">196</span>
|
|
<span class="normal">197</span>
|
|
<span class="normal">198</span>
|
|
<span class="normal">199</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">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="o">-></span> <span class="n">Self</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">if</span> <span class="n">dtypes</span><span class="o">.</span><span class="n">is_int</span><span class="p">(</span><span class="n">a</span><span class="o">.</span><span class="n">dtype</span><span class="p">):</span> <span class="k">return</span> <span class="n">a</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">FLOORMOD</span><span class="p">,</span> <span class="n">b</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.fmod" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">fmod</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.fmod" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">fmod</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="o">-></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>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>C-style remainder of <code class="language-python highlight"><span class="bp">self</span></code> divided by <code class="language-python highlight"><span class="n">x</span></code> (sign follows the dividend), using truncating division.
|
|
Differs from <code class="language-python highlight"><span class="n">mod</span></code>/<code class="language-python highlight"><span class="o">%</span></code>, which uses Python floor remainder.</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">fmod</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="mi">1</span> <span class="mi">5</span> <span class="mi">0</span> <span class="o">-</span><span class="mi">1</span> <span class="mi">3</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">201</span>
|
|
<span class="normal">202</span>
|
|
<span class="normal">203</span>
|
|
<span class="normal">204</span>
|
|
<span class="normal">205</span>
|
|
<span class="normal">206</span>
|
|
<span class="normal">207</span>
|
|
<span class="normal">208</span>
|
|
<span class="normal">209</span>
|
|
<span class="normal">210</span>
|
|
<span class="normal">211</span>
|
|
<span class="normal">212</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">fmod</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="o">-></span> <span class="n">Self</span><span class="p">:</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> C-style remainder of `self` divided by `x` (sign follows the dividend), using truncating division.</span>
|
|
<span class="sd"> Differs from `mod`/`%`, which uses Python floor remainder.</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]).fmod(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="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">a</span><span class="o">.</span><span class="n">dtype</span><span class="p">):</span> <span class="k">return</span> <span class="n">a</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">CMOD</span><span class="p">,</span> <span class="n">b</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">"trunc"</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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">171</span>
|
|
<span class="normal">172</span>
|
|
<span class="normal">173</span>
|
|
<span class="normal">174</span>
|
|
<span class="normal">175</span>
|
|
<span class="normal">176</span>
|
|
<span class="normal">177</span>
|
|
<span class="normal">178</span>
|
|
<span class="normal">179</span>
|
|
<span class="normal">180</span>
|
|
<span class="normal">181</span>
|
|
<span class="normal">182</span>
|
|
<span class="normal">183</span>
|
|
<span class="normal">184</span>
|
|
<span class="normal">185</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="o">-></span> <span class="n">Self</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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">141</span>
|
|
<span class="normal">142</span>
|
|
<span class="normal">143</span>
|
|
<span class="normal">144</span>
|
|
<span class="normal">145</span>
|
|
<span class="normal">146</span>
|
|
<span class="normal">147</span>
|
|
<span class="normal">148</span>
|
|
<span class="normal">149</span>
|
|
<span class="normal">150</span>
|
|
<span class="normal">151</span>
|
|
<span class="normal">152</span>
|
|
<span class="normal">153</span>
|
|
<span class="normal">154</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="o">-></span> <span class="n">Self</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> <span class="o">-></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>
|
|
</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/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">156</span>
|
|
<span class="normal">157</span>
|
|
<span class="normal">158</span>
|
|
<span class="normal">159</span>
|
|
<span class="normal">160</span>
|
|
<span class="normal">161</span>
|
|
<span class="normal">162</span>
|
|
<span class="normal">163</span>
|
|
<span class="normal">164</span>
|
|
<span class="normal">165</span>
|
|
<span class="normal">166</span>
|
|
<span class="normal">167</span>
|
|
<span class="normal">168</span>
|
|
<span class="normal">169</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="o">-></span> <span class="n">Self</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></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>
|
|
<span class="normal">134</span>
|
|
<span class="normal">135</span>
|
|
<span class="normal">136</span>
|
|
<span class="normal">137</span>
|
|
<span class="normal">138</span>
|
|
<span class="normal">139</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">Self</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="bp">self</span><span class="o">.</span><span class="n">_check_dtype</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="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">return</span> <span class="p">(</span><span class="bp">self</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">max</span><span class="p">)</span> <span class="k">if</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="k">else</span> <span class="p">(</span><span class="bp">self</span> <span class="o">^</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.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-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-external" href="https://docs.python.org/3/library/functions.html#int">int</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> <span class="o">-></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>
|
|
</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 integer 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/mixin/elementwise.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>
|
|
<span class="normal">336</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">Self</span> <span class="o">|</span> <span class="nb">int</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="o">-></span> <span class="n">Self</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 integer 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">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">SHL</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.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-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-external" href="https://docs.python.org/3/library/functions.html#int">int</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> <span class="o">-></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>
|
|
</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 integer 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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></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>
|
|
<span class="normal">346</span>
|
|
<span class="normal">347</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">Self</span> <span class="o">|</span> <span class="nb">int</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="o">-></span> <span class="n">Self</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 integer 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">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">SHR</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.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-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> <span class="o">-></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>
|
|
</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">524</span>
|
|
<span class="normal">525</span>
|
|
<span class="normal">526</span>
|
|
<span class="normal">527</span>
|
|
<span class="normal">528</span>
|
|
<span class="normal">529</span>
|
|
<span class="normal">530</span>
|
|
<span class="normal">531</span>
|
|
<span class="normal">532</span>
|
|
<span class="normal">533</span>
|
|
<span class="normal">534</span>
|
|
<span class="normal">535</span>
|
|
<span class="normal">536</span>
|
|
<span class="normal">537</span>
|
|
<span class="normal">538</span>
|
|
<span class="normal">539</span>
|
|
<span class="normal">540</span>
|
|
<span class="normal">541</span>
|
|
<span class="normal">542</span>
|
|
<span class="normal">543</span>
|
|
<span class="normal">544</span>
|
|
<span class="normal">545</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">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="o">-></span> <span class="n">Self</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="nb">isinstance</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ElementwiseMixin</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">alu</span><span class="p">(</span><span class="n">Ops</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-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="o">-></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>
|
|
</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></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>
|
|
<span class="normal">366</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></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">Self</span> <span class="o">|</span> <span class="n">ConstType</span><span class="p">)</span> <span class="o">-></span> <span class="n">Self</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">_binop</span><span class="p">(</span><span class="n">Ops</span><span class="o">.</span><span class="n">MAX</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="kc">False</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-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="o">-></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>
|
|
</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">376</span>
|
|
<span class="normal">377</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">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">Self</span> <span class="o">|</span> <span class="n">ConstType</span><span class="p">)</span> <span class="o">-></span> <span class="n">Self</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">1.9576</span> <span class="o">-</span><span class="mf">0.1859</span> <span class="mf">1.6404</span><span class="p">]</span>
|
|
<span class="p">[</span><span class="o">-</span><span class="mf">0.7647</span> <span class="o">-</span><span class="mf">0.8695</span> <span class="o">-</span><span class="mf">0.4379</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">1.9576</span> <span class="o">-</span><span class="n">inf</span> <span class="mf">1.6404</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="o">-</span><span class="n">inf</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">1262</span>
|
|
<span class="normal">1263</span>
|
|
<span class="normal">1264</span>
|
|
<span class="normal">1265</span>
|
|
<span class="normal">1266</span>
|
|
<span class="normal">1267</span>
|
|
<span class="normal">1268</span>
|
|
<span class="normal">1269</span>
|
|
<span class="normal">1270</span>
|
|
<span class="normal">1271</span>
|
|
<span class="normal">1272</span>
|
|
<span class="normal">1273</span>
|
|
<span class="normal">1274</span>
|
|
<span class="normal">1275</span>
|
|
<span class="normal">1276</span>
|
|
<span class="normal">1277</span>
|
|
<span class="normal">1278</span>
|
|
<span class="normal">1279</span>
|
|
<span class="normal">1280</span>
|
|
<span class="normal">1281</span>
|
|
<span class="normal">1282</span>
|
|
<span class="normal">1283</span>
|
|
<span class="normal">1284</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="k">else</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="bp">self</span><span class="o">.</span><span class="n">ufix</span><span class="p">(</span><span class="n">x</span><span class="p">)</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">out_shape</span> <span class="o">=</span> <span class="n">_broadcast_shape</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="n">x</span><span class="o">.</span><span class="n">shape</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">dtypes</span><span class="o">.</span><span class="n">bool</span><span class="p">)</span><span class="o">.</span><span class="n">_broadcast_to</span><span class="p">(</span><span class="n">out_shape</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="n">x</span><span class="o">.</span><span class="n">_broadcast_to</span><span class="p">(</span><span class="n">out_shape</span><span class="p">),</span> <span class="n">y</span><span class="o">.</span><span class="n">_broadcast_to</span><span class="p">(</span><span class="n">out_shape</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="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="o">-></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>
|
|
</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/mixin/elementwise.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></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="n">Self</span> <span class="o">|</span> <span class="n">ConstType</span><span class="p">)</span> <span class="o">-></span> <span class="n">Self</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">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">other</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">a</span><span class="o">.</span><span class="n">abs</span><span class="p">()</span> <span class="o">*</span> <span class="p">((</span><span class="n">b</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="n">reciprocal</span><span class="p">()</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="mi">1</span><span class="p">,</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.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="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="o">-></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>
|
|
</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/mixin/elementwise.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">398</span>
|
|
<span class="normal">399</span>
|
|
<span class="normal">400</span>
|
|
<span class="normal">401</span>
|
|
<span class="normal">402</span>
|
|
<span class="normal">403</span>
|
|
<span class="normal">404</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="n">Self</span> <span class="o">|</span> <span class="n">ConstType</span><span class="p">)</span> <span class="o">-></span> <span class="n">Self</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">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">other</span><span class="p">)</span>
|
|
<span class="n">m</span> <span class="o">=</span> <span class="n">a</span><span class="o">.</span><span class="n">maximum</span><span class="p">(</span><span class="n">b</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="p">((</span><span class="n">a</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="n">b</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">1374</span>
|
|
<span class="normal">1375</span>
|
|
<span class="normal">1376</span>
|
|
<span class="normal">1377</span>
|
|
<span class="normal">1378</span>
|
|
<span class="normal">1379</span>
|
|
<span class="normal">1380</span>
|
|
<span class="normal">1381</span>
|
|
<span class="normal">1382</span>
|
|
<span class="normal">1383</span>
|
|
<span class="normal">1384</span>
|
|
<span class="normal">1385</span>
|
|
<span class="normal">1386</span>
|
|
<span class="normal">1387</span>
|
|
<span class="normal">1388</span>
|
|
<span class="normal">1389</span>
|
|
<span class="normal">1390</span>
|
|
<span class="normal">1391</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">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="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">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><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">1393</span>
|
|
<span class="normal">1394</span>
|
|
<span class="normal">1395</span>
|
|
<span class="normal">1396</span>
|
|
<span class="normal">1397</span>
|
|
<span class="normal">1398</span>
|
|
<span class="normal">1399</span>
|
|
<span class="normal">1400</span>
|
|
<span class="normal">1401</span>
|
|
<span class="normal">1402</span>
|
|
<span class="normal">1403</span>
|
|
<span class="normal">1404</span>
|
|
<span class="normal">1405</span>
|
|
<span class="normal">1406</span>
|
|
<span class="normal">1407</span>
|
|
<span class="normal">1408</span>
|
|
<span class="normal">1409</span>
|
|
<span class="normal">1410</span>
|
|
<span class="normal">1411</span>
|
|
<span class="normal">1412</span>
|
|
<span class="normal">1413</span>
|
|
<span class="normal">1414</span>
|
|
<span class="normal">1415</span>
|
|
<span class="normal">1416</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"> ```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="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">Tensor</span><span class="o">.</span><span class="n">usum</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">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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/dtype.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">35</span>
|
|
<span class="normal">36</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></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">Self</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/dtype.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></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>
|
|
<span class="normal">55</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></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">Self</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/dtype.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></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>
|
|
<span class="normal">75</span>
|
|
<span class="normal">76</span>
|
|
<span class="normal">77</span>
|
|
<span class="normal">78</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">Self</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-external" title="<code>typing.Self</code>" href="https://docs.python.org/3/library/typing.html#typing.Self">Self</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/mixin/dtype.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></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>
|
|
<span class="normal">90</span>
|
|
<span class="normal">91</span>
|
|
<span class="normal">92</span>
|
|
<span class="normal">93</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">Self</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>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="tinygrad.Tensor.bfloat16" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">bfloat16</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.bfloat16" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">bfloat16</span><span class="p">()</span> <span class="o">-></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>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/dtype.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">95</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">bfloat16</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Self</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">dtypes</span><span class="o">.</span><span class="n">bfloat16</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.double" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">double</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.double" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">double</span><span class="p">()</span> <span class="o">-></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>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/dtype.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">96</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">double</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Self</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">dtypes</span><span class="o">.</span><span class="n">double</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.long" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">long</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.long" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">long</span><span class="p">()</span> <span class="o">-></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>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/dtype.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">97</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">long</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Self</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">dtypes</span><span class="o">.</span><span class="n">long</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.short" class="doc doc-heading">
|
|
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">short</span>
|
|
|
|
|
|
<a href="#tinygrad.Tensor.short" class="headerlink" title="Permanent link">¤</a></h3>
|
|
<div class="language-python doc-signature highlight"><pre><span></span><code><span class="nf">short</span><span class="p">()</span> <span class="o">-></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>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>tinygrad/mixin/dtype.py</code></summary>
|
|
<div class="language-python highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">98</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">short</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Self</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">dtypes</span><span class="o">.</span><span class="n">short</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> |