算法资源管理¶
-
class
anylearn.interfaces.resource.algorithm.
Algorithm
(id: Optional[str] = None, name: Optional[str] = None, description: Optional[str] = None, state: Optional[int] = None, public=False, upload_time: Optional[Union[datetime.datetime, str]] = None, filename: Optional[str] = None, is_zipfile: Optional[int] = None, file_path: Optional[str] = None, size: Optional[str] = None, creator_id: Optional[str] = None, node_id: Optional[str] = None, tags: Optional[str] = None, mirror_id: Optional[str] = None, train_params: Optional[str] = None, follows_anylearn_norm=True, git_address: Optional[str] = None, git_migrated: Optional[bool] = False, load_detail=False)[源代码]¶ 基类:
anylearn.interfaces.resource.resource.Resource
AnyLearn算法类,以方法映射算法CRUD相关接口
-
id
¶ 算法的唯一标识符,自动生成,由ALGO+uuid1生成的编码中后28个有效位(小写字母和数字)组成)(自动生成)
-
name
¶ 算法的名称
-
description
¶ 算法的描述
-
state
¶ 算法状态
-
public
¶ 算法是否公开(默认为False)
-
upload_time
¶ 算法上传时间
-
filename
¶ 下一步中会被分片上传的文件的完整文件名(包括扩展名)(非空 长度1~128)
-
is_zipfile
¶ 是否为zip文件
-
file_path
¶ 算法文件路径
-
size
¶ 算法文件大小
-
creator_id
¶ 算法的创建者
-
node_id
¶ 算法节点ID
算法的标签
-
mirror_id
¶ 算法使用的基础镜像的id
-
train_params
¶ 算法的训练参数,包括数据集参数
-
follows_anylearn_norm
¶ 算法是否符合Anylearn的算法规范(默认为True)
-
git_address
¶ 算法的Anylearn Gitea远端代码仓库地址
-
git_migrated
¶ 算法是否由传统模式自动迁移至Anylearn Gitea
-
load_detail
¶ 初始化时是否加载详情
-
__init__
(id: Optional[str] = None, name: Optional[str] = None, description: Optional[str] = None, state: Optional[int] = None, public=False, upload_time: Optional[Union[datetime.datetime, str]] = None, filename: Optional[str] = None, is_zipfile: Optional[int] = None, file_path: Optional[str] = None, size: Optional[str] = None, creator_id: Optional[str] = None, node_id: Optional[str] = None, tags: Optional[str] = None, mirror_id: Optional[str] = None, train_params: Optional[str] = None, follows_anylearn_norm=True, git_address: Optional[str] = None, git_migrated: Optional[bool] = False, load_detail=False)[源代码]¶ - 参数
id – 算法的唯一标识符,自动生成,由ALGO+uuid1生成的编码中后28个有效位(小写字母和数字)组成)(自动生成)
name – 算法的名称
description – 算法的描述
state – 算法状态
public – 算法是否公开(默认为False)
upload_time – 算法上传时间
filename – 下一步中会被分片上传的文件的完整文件名(包括扩展名)(非空 长度1~128)
is_zipfile – 是否为zip文件
file_path – 算法文件路径
size – 算法文件大小
creator_id – 算法的创建者
node_id – 算法节点ID
tags – 算法的标签
mirror_id – 算法使用的基础镜像的id
train_params – 算法的训练参数,包括数据集参数
follows_anylearn_norm – 算法是否符合Anylearn的算法规范(默认为True)
git_address – 算法的Anylearn Gitea远端代码仓库地址
git_migrated – 算法是否由传统模式自动迁移至Anylearn Gitea
load_detail – 初始化时是否加载详情
-
_check_fields
(required=[])¶ 对象检查属性是否存在
-
_create
()¶ 创建对象,如果子类创建方法与此有较大差异可以重写此方法
-
_fields
= {'payload': {'create': ['name', 'description', 'public', 'filename', 'tags', 'mirror_id', 'train_params', 'follows_anylearn_norm'], 'update': ['id', 'name', 'description', 'public', 'tags', 'mirror_id', 'train_params', 'follows_anylearn_norm']}, 'required': {'create': ['name', 'filename', 'mirror_id'], 'update': ['id', 'name']}}¶ 创建/更新对象时:
必须包含且不能为空的字段
_fields['required']
所有字段
_fields['payload']
-
_namespace
()[源代码]¶ 子类的命名空间,调用此方法以获取子类的名称用于异常信息输出等,以
User
为例,_namespace
可以为user
子类需实现此抽象方法
-
_update
()¶ 更新对象,如果子类更新方法与此有较大差异可以重写此方法
-
_url_create
()¶ 创建对象url,如果子类创建对象接口名称不是
add
,可以重写此方法来定制接口名称
-
_url_update
()¶ 更新对象url,如果子类更新对象接口名称不是
update
,可以重写此方法来定制接口名称
-
classmethod
download_file
(resource_id: str, save_path: str, polling: Union[float, int] = 5, downloader: Optional[anylearn.interfaces.resource.resource_downloader.ResourceDownloader] = None)¶ 把服务器资源使用aiohttp异步下载到本地指定的文件夹
- 参数
resource_id (
str
) – 资源ID。save_path (
str
) – 保存路径。downloader (
ResourceDownloader
) – 可以使用SDK中的AsyncResourceDownloader,也可以自定义实现ResourceDownloader。polling (
float, int
) – 下载前要先压缩文件,轮询查看文件有没有压缩完的时间间隔,单位:秒。默认值5
- 返回
文件名。
- 返回类型
str
-
classmethod
get_user_custom_algorithm_by_name
(name: str)[源代码]¶ 根据算法名称获取当前用户的自定义算法
- 参数
name (
str
) – 算法名称。- 返回
算法对象。
- 返回类型
-
classmethod
list_dir
(resource_id)¶ 文件列表查询接口
- 参数
resource_id –
str
文件ID- 返回
{ "vgg_ssd300_tianyuan.yaml": { "name": "vgg_ssd300_tianyuan.yaml", "type": "file" } }
-
save
()¶ 创建或更新对象
对象包含非空属性
id
时为更新,否则为创建创建对象时必须包含且不能为空的字段:
_fields['required']['create']
创建对象时包含的所有字段:
_fields['payload']['create']
更新对象时必须包含且不能为空的字段:
_fields['required']['update']
更新对象时包含的所有字段:
_fields['payload']['update']
- 返回
True or False
- 返回类型
bool
-
property
train_params
¶ 获取训练参数
-
classmethod
upload_file
(resource_id: str, file_path: str, uploader: Optional[anylearn.interfaces.resource.resource_uploader.ResourceUploader] = None, chunk_size: int = 2048000)¶ 对指定路径的本地文件进行分割并使用aiohttp异步上传
- 参数
resource_id (
str
) – 资源ID。file_path (
str
) – 文件路径。uploader (
ResourceUploader
) – 可以使用SDK中的AsyncResourceUploader,也可以自定义实现ResourceUploader。chunk_size (
int
) – 文件分割大小,默认2048000。
- 返回
True or False
- 返回类型
bool
-