ludwig-ai--ludwig
593b94c120
pytest / Unit Tests (push) Has been cancelled
pytest / Integration (integration_tests_a) (push) Has been cancelled
pytest / Integration (integration_tests_b) (push) Has been cancelled
pytest / Integration (integration_tests_c) (push) Has been cancelled
pytest / Integration (integration_tests_d) (push) Has been cancelled
pytest / Integration (integration_tests_e) (push) Has been cancelled
pytest / Integration (integration_tests_f) (push) Has been cancelled
pytest / Integration (integration_tests_g) (push) Has been cancelled
pytest / Integration (integration_tests_h) (push) Has been cancelled
pytest / Integration (integration_tests_i) (push) Has been cancelled
pytest / Integration (integration_tests_j) (push) Has been cancelled
pytest / Distributed (distributed_a) (push) Has been cancelled
pytest / Distributed (distributed_b) (push) Has been cancelled
pytest / Distributed (distributed_c) (push) Has been cancelled
pytest / Distributed (distributed_d) (push) Has been cancelled
pytest / Distributed (distributed_e) (push) Has been cancelled
pytest / Distributed (distributed_f) (push) Has been cancelled
pytest / Minimal Install (push) Has been cancelled
pytest / Event File (push) Has been cancelled
pytest (slow) / py-slow (push) Has been cancelled
Publish JSON Schema / publish-schema (push) Has been cancelled
66 行
2.0 KiB
Python
66 行
2.0 KiB
Python
#! /usr/bin/env python
|
|
# Copyright (c) 2023 Predibase, Inc., 2019 Uber Technologies, Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
# ==============================================================================
|
|
import math
|
|
|
|
import numpy as np
|
|
|
|
|
|
def softmax(x, temperature=1.0):
|
|
e_x = np.exp((x - np.max(x)) / temperature)
|
|
return e_x / e_x.sum()
|
|
|
|
|
|
def int_type(number):
|
|
if number <= np.iinfo(np.int8).max:
|
|
return np.int8
|
|
elif number <= np.iinfo(np.int16).max:
|
|
return np.int16
|
|
elif number <= np.iinfo(np.int32).max:
|
|
return np.int32
|
|
else: # if number <= np.iinfo(np.int64).max:
|
|
return np.int64
|
|
|
|
|
|
def convert_size(size_bytes):
|
|
if size_bytes == 0:
|
|
return "0B"
|
|
size_name = ("B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB")
|
|
i = int(math.floor(math.log(size_bytes, 1024)))
|
|
p = math.pow(1024, i)
|
|
s = round(size_bytes / p, 2)
|
|
return f"{s} {size_name[i]}"
|
|
|
|
|
|
def round2precision(val, precision: int = 0, which: str = ""):
|
|
if precision < 0:
|
|
raise ValueError(f"precision must be non-negative, got {precision}")
|
|
val *= 10**precision
|
|
round_callback = round
|
|
if which.lower() == "up":
|
|
round_callback = math.ceil
|
|
if which.lower() == "down":
|
|
round_callback = math.floor
|
|
return "{1:.{0}f}".format(precision, round_callback(val) / 10**precision)
|
|
|
|
|
|
def cumsum(x: list[int]) -> list[int]:
|
|
results = []
|
|
j = 0
|
|
for i in range(0, len(x)):
|
|
j += x[i]
|
|
results.append(j)
|
|
return results
|