这是带有类algorithmia_utils.py的AlgorithmiaUtils文件
class AlgorithmiaUtils:
def __init__(self, api_key, username, algo_name, local_dir):
self.api_key = api_key
self.username = username
self.algo_name = algo_name
self.local_dir = local_dir
self.algo_namespace = f"{self.username}/{self.algo_name}"
self.algo_script_path = "{}/{}/src/{}.py".format(
self.local_dir, algo_name, algo_name
)
self.dependency_file_path = "{}/{}/{}".format(
self.local_dir, algo_name, "requirements.txt"
)
self.algo_client = Algorithmia.client(self.api_key)
def upload_model_to_algorithmia(
self, local_path, algorithmia_data_path, model_name
):
if not self.algo_client.dir(algorithmia_data_path).exists():
self.algo_client.dir(algorithmia_data_path).create()
algorithmia_path = "{}/{}".format(algorithmia_data_path, model_name)
result = self.algo_client.file(algorithmia_path).putFile(local_path)我想使用来自另一个脚本的函数upload_model_to_algorithmia。
因此,我试图:
import Algorithmia
import algorithmia_utils as algo_utility并调用该函数:
algo_utility.AlgorithmiaUtils.upload_model_to_algorithmia(
local_path = local_path,
algorithmia_data_path = algorithmia_data_path,
model_name = model_name)返回错误:
TypeError: upload_model_to_algorithmia() missing 1 required positional argument: 'self'我应该添加一个额外的参数,还是没有正确导入文件,以及如何解决这个问题?
谢谢!
编辑:
这看起来很容易,但到目前为止还没有解决办法。
import Algorithmia
import algorithmia_utils as algo_utility
from algorithmia_utils import AlgorithmiaUtils as xpto和:
xpto.upload_model_to_algorithmia(
local_path = local_path,
algorithmia_data_path = algorithmia_data_path,
model_name = model_name)返回错误:
TypeError: upload_model_to_algorithmia() missing 1 required positional argument: 'self'发布于 2021-08-26 14:34:42
做这个,
from algorithmia_utils import AlgorithmiaUtils首先创建类对象,
algoutil = AlgorithmiaUtils(api_key = api_key,
username = username,
algo_name = algo_name,
local_dir = local_dir,)现在您已经创建了一个名为algoutil的对象,它属于AlgorithmiaUtils类,它拥有该类可用的所有方法。
然后你这样做来运行你的函数,
algoutil.upload_model_to_algorithmia(local_path = local_path,
algorithmia_data_path = algorithmia_data_path,
model_name = model_name
)您需要用所需的信息替换引号后面的参数。
我认为您已经从https://github.com/algorithmiaio/model-deployment/blob/master/xgboost_notebook_to_algorithmia/algorithmia_utils.py获得了代码,但是主要服务是由算法托管的,如果我没有错,您需要在那里创建一个帐户并获取一个api密钥并将其插入到代码中。例如,它看起来像这样,
from algorithmia_utils import AlgorithmiaUtils
algoutil = AlgorithmiaUtils(api_key = '8hf81qhg3t8h12f',
username = 'unstuck',
algo_name = 'algo1',
local_dir = '/home/docs/whatever',)
algoutil.upload_model_to_algorithmia(local_path = '/home/docs/whatever/algo.csv',
algorithmia_data_path = '/path/to/file',
model_name = 'model1'
)我已经回答了您关于如何创建对象并使用它的问题,但是您需要通过阅读文档来输入关于如何使它工作的正确的参数,这是一个完全不同的问题。
https://stackoverflow.com/questions/68940504
复制相似问题