add_sample_class_mlpT_add_sample_class_mlpAddSampleClassMlpAddSampleClassMlpadd_sample_class_mlp添加样本类多层感知机(算子)
名称
add_sample_class_mlpT_add_sample_class_mlpAddSampleClassMlpAddSampleClassMlpadd_sample_class_mlp — 将训练样本添加到多层感知机的训练数据中。
签名
def add_sample_class_mlp(mlphandle: HHandle, features: Sequence[float], target: MaybeSequence[Union[int, float]]) -> None
描述
add_sample_class_mlpadd_sample_class_mlpAddSampleClassMlpAddSampleClassMlpAddSampleClassMlpadd_sample_class_mlp 将训练样本添加到由 MLPHandleMLPHandleMLPHandleMLPHandleMLPHandlemlphandle 指定的多层感知机(MLP)中。训练样本由 FeaturesFeaturesFeaturesFeaturesfeaturesfeatures 和 TargetTargetTargetTargettargettarget。
FeaturesFeaturesFeaturesFeaturesfeaturesfeatures 是样本的特征向量,因此必须是长度为 NumInputNumInputNumInputNumInputnumInputnum_input 的实数向量,这在 create_class_mlpcreate_class_mlpCreateClassMlpCreateClassMlpCreateClassMlpcreate_class_mlp 中有明确规定。TargetTargetTargetTargettargettarget 是样本的目标向量,其长度必须为 NumOutputNumOutputNumOutputNumOutputnumOutputnum_output(参见 create_class_mlpcreate_class_mlpCreateClassMlpCreateClassMlpCreateClassMlpcreate_class_mlp),适用于 MLP 的三种激活函数类型(例外情况:见下文)。若多层感知机用于回归(函数逼近),即当 OutputFunctionOutputFunctionOutputFunctionOutputFunctionoutputFunctionoutput_function = 'linear'"linear""linear""linear""linear""linear" 时,TargetTargetTargetTargettargettarget 即为函数在坐标 FeaturesFeaturesFeaturesFeaturesfeaturesfeatures 处的值。在此情况下,TargetTargetTargetTargettargettarget 可以包含任意实数。当 OutputFunctionOutputFunctionOutputFunctionOutputFunctionoutputFunctionoutput_function = 'logistic'"logistic""logistic""logistic""logistic""logistic" 时,TargetTargetTargetTargettargettarget 只能包含值 0.0 和 1.0。值为 1.0 表示该属性存在,值为 0.0 表示该属性不存在。因为在此情况下属性是独立的,因此可以传递任意组合的 0.0 和 1.0 值。当 OutputFunctionOutputFunctionOutputFunctionOutputFunctionoutputFunctionoutput_function = 'softmax'"softmax""softmax""softmax""softmax""softmax" 时,
TargetTargetTargetTargettargettarget 也只能包含 0.0 和 1.0 这两个数值。与 OutputFunctionOutputFunctionOutputFunctionOutputFunctionoutputFunctionoutput_function =
'logistic'"logistic""logistic""logistic""logistic""logistic" 不同,元组 TargetTargetTargetTargettargettarget 中必须仅有一个元素取值为 1.0 。元组中的位置指定样本的类。为方便使用,当 OutputFunctionOutputFunctionOutputFunctionOutputFunctionoutputFunctionoutput_function =
'softmax'"softmax""softmax""softmax""softmax""softmax" 时,可传递单个整数值。该值直接指定样本的类,从0开始计数,即类必须是 0 到 NumOutputNumOutputNumOutputNumOutputnumOutputnum_output - 1 之间的整数。该类在内部被转换为长度为 NumOutputNumOutputNumOutputNumOutputnumOutputnum_output 的目标向量。
在使用 train_class_mlptrain_class_mlpTrainClassMlpTrainClassMlpTrainClassMlptrain_class_mlp 训练多层感知机(MLP)之前,必须先通过 add_sample_class_mlpadd_sample_class_mlpAddSampleClassMlpAddSampleClassMlpAddSampleClassMlpadd_sample_class_mlp 将所有训练样本添加到 MLP 中。
当前存储的训练样本数量可通过 get_sample_num_class_mlpget_sample_num_class_mlpGetSampleNumClassMlpGetSampleNumClassMlpGetSampleNumClassMlpget_sample_num_class_mlp 查询。存储的训练样本可通过 get_sample_class_mlpget_sample_class_mlpGetSampleClassMlpGetSampleClassMlpGetSampleClassMlpget_sample_class_mlp 再次读取。
通常,使用 write_samples_class_mlpwrite_samples_class_mlpWriteSamplesClassMlpWriteSamplesClassMlpWriteSamplesClassMlpwrite_samples_class_mlp 将训练样本保存至文件中颇为实用,这既便于重复利用样本,又可在必要时向数据集添加新训练样本,从而使新建的多层感知机(MLP)能够基于扩展后的数据集重新进行训练。
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 未采用并行化处理。
此算子修改后续输入参数的状态:
在执行此算子时,若该参数值需在多个线程间使用,则必须对其访问进行同步。
参数
MLPHandleMLPHandleMLPHandleMLPHandleMLPHandlemlphandle (输入控制,状态被修改) class_mlp → HClassMlp, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
MLP 句柄。
FeaturesFeaturesFeaturesFeaturesfeaturesfeatures (输入控制) real-array → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
待存储的训练样本特征向量。
TargetTargetTargetTargettargettarget (输入控制) number(-array) → HTupleMaybeSequence[Union[int, float]]HTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)
待存储训练样本的类或目标向量。
结果
如果参数有效,算子
add_sample_class_mlpadd_sample_class_mlpAddSampleClassMlpAddSampleClassMlpAddSampleClassMlpadd_sample_class_mlp 返回值 2 ( H_MSG_TRUE )。如有必要,则抛出异常。
可能的前趋
create_class_mlpcreate_class_mlpCreateClassMlpCreateClassMlpCreateClassMlpcreate_class_mlp
可能的后继
train_class_mlptrain_class_mlpTrainClassMlpTrainClassMlpTrainClassMlptrain_class_mlp,
write_samples_class_mlpwrite_samples_class_mlpWriteSamplesClassMlpWriteSamplesClassMlpWriteSamplesClassMlpwrite_samples_class_mlp
替代
read_samples_class_mlpread_samples_class_mlpReadSamplesClassMlpReadSamplesClassMlpReadSamplesClassMlpread_samples_class_mlp
另见
clear_samples_class_mlpclear_samples_class_mlpClearSamplesClassMlpClearSamplesClassMlpClearSamplesClassMlpclear_samples_class_mlp,
get_sample_num_class_mlpget_sample_num_class_mlpGetSampleNumClassMlpGetSampleNumClassMlpGetSampleNumClassMlpget_sample_num_class_mlp,
get_sample_class_mlpget_sample_class_mlpGetSampleClassMlpGetSampleClassMlpGetSampleClassMlpget_sample_class_mlp
模块
基础