Download code/models/common/helper_funcs.py from tt-hous/clef: direct link, hf CLI and curl.
- Browser
- Download file 1.2 kB
-
https://huggingface.co/tt-hous/clef/resolve/main/code/models/common/helper_funcs.py
- Command line
-
hf download hf://tt-hous/clef/code/models/common/helper_funcs.py
-
curl -L -o helper_funcs.py https://huggingface.co/tt-hous/clef/resolve/main/code/models/common/helper_funcs.py
1.2 kB
| # SPDX-FileCopyrightText: © 2023 Tenstorrent USA, Inc. | |
| # SPDX-License-Identifier: Apache-2.0 | |
| from typing import Optional | |
| import ttnn | |
| def Linear( | |
| in_features: int, | |
| out_features: int, | |
| weight: ttnn.Tensor, | |
| bias: Optional[ttnn.Tensor] = None, | |
| output_mem_config=ttnn.DRAM_MEMORY_CONFIG, | |
| ): | |
| """ | |
| Returns a function that performs a Linear operation with optional bias. | |
| ``weight`` must be tt_tensor. | |
| """ | |
| assert weight.padded_shape == [ | |
| 1, | |
| 1, | |
| out_features, | |
| in_features, | |
| ], "weight does not have the expected shape" | |
| if bias is not None: | |
| assert bias.padded_shape[-1] == out_features, "bias does not have the expected shape" | |
| weight = weight | |
| bias = bias | |
| weight_T = ttnn.transpose(weight, -2, -1) | |
| def linear_(activation): | |
| nonlocal bias | |
| assert activation.padded_shape[-1] == in_features, "activation tensor do not have the expected shape" | |
| if bias is not None and bias.get_layout() != ttnn.TILE_LAYOUT: | |
| bias = ttnn.to_layout(bias, ttnn.TILE_LAYOUT) | |
| return ttnn.linear(activation, weight_T, bias=bias, memory_config=output_mem_config) | |
| return linear_ | |