Repository: incubator-singa Updated Branches: refs/heads/master c67c3b63f -> c343ff950
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/c343ff95/doc/zh/docs/optimizer.md ---------------------------------------------------------------------- diff --git a/doc/zh/docs/optimizer.md b/doc/zh/docs/optimizer.md new file mode 100644 index 0000000..6657e41 --- /dev/null +++ b/doc/zh/docs/optimizer.md @@ -0,0 +1,237 @@ +# ä¼åå¨(Optimizer) + +è¿ä¸ªæ¨¡åå å«ä¸ç³»åç¨äºæ¨¡ååæ°æ´æ°çä¼åå¨ã + +示ä¾ç¨æ³ï¼ + +```python +from singa import optimizer +from singa import tensor + +sgd = optimizer.SGD(lr=0.01, momentum=0.9, weight_decay=1e-4) +p = tensor.Tensor((3,5)) +p.uniform(-1, 1) +g = tensor.Tensor((3,5)) +g.gaussian(0, 0.01) + +sgd.apply(1, g, p, 'param') # use the global lr=0.1 for epoch 1 +sgd.apply_with_lr(2, 0.03, g, p, 'param') # use lr=0.03 for epoch 2 +``` + +----- + +### class singa.optimizer.Optimizer(lr=None, momentum=None, weight_decay=None, regularizer=None, constraint=None) + +åºç±»ï¼`object` + +Pythonä¼åå¨ç±»çåºç±»ã +å ¸åå°ï¼ä¼å卿å¦ä¸ä½ç¨ï¼ + +1. æå»ºä¼åå¨ +2. ï¼å¯éï¼ä»¥åæ°åä¸ºæ³¨åæ¯ç§åæ° +3. 使ç¨ä¼åå¨ä¾ç §ç»å®åæ°æ¢¯åº¦åå ¶ä»ä¿¡æ¯æ´æ°åæ°å¼ + +å®çåç±»åºè¯¥éåapply_with_lr彿°å·²ç¨äºçå®çåæ°æ´æ°ã + +**åæ°ï¼** +- **lr (float)** â å¦ä¹ éç +- **momentum (float)** â å¨é +- **weight_decay (float)** â L2æ£ååç³»æ°ï¼è¢«æé¤äºâregularizerâä¹å¤ +- **regularizer** â RegularizeræRegularizerConfå®ä¾ï¼å¦è¢«è®¾ç½®ï¼æ£ååå°è¢«ç¨äºapply_with_lr()ã ç¨æ·ä¹å¯ä»¥å¨ä¼åå¨å¤é¨åæ£ååã +- **constraint** â ConstraintæConstraintConfå®ä¾ï¼å¦è¢«è®¾ç½®ï¼æ£ååå°è¢«ç¨äºapply_with_lr()ã ç¨æ·ä¹å¯ä»¥å¨ä¼åå¨å¤é¨åæ£ååã + +----- + +#### register(name, specs) + +注ååæ°ï¼å æ¬ä¸ºæ¯ä¸ªåæ°å¯¹è±¡å建æ£åååçº¦ææ¡ä»¶ã è¿éåæ°ç¹å®çæ£åååçº¦ææ¯å ¨å±è®¾ç½®ææ´é«ä¼å 级ã 妿ææåæ°å¯¹äºå¦ä¹ éçãæ£è§åå¨åçº¦ææ¡ä»¶å ±äº«ç¸åç设置ï¼åä¸éè¦è°ç¨è¯¥å½æ°ã + +**åæ°ï¼** +- **name (str)** â åæ°å +- **specs (ParamSpec)** â protobuf对象ï¼å æ¬æ£åååçº¦ææ¡ä»¶ãå¦ä¹ éçåæå¼è¡°åä¹åã + +----- + +#### apply_regularizer_constraint(epoch, value, grad, name=None, step=-1) + +妿å¯ç¨ï¼å°éç¨æ£åååçº¦ææ¡ä»¶ã å¦æå ¨å±æ£ååååæ°ç¹å®çæ£ååé½åå¨ï¼ä¼éç¨åæ°ç¹å®çæ£ååã + +**åæ°ï¼** +- **epoch (int)** â è®ç»çepoch ID ï¼å®æ´è®ç»ä¸éè®ç»æ°æ®ç§°ä¸ºä¸ä¸ªepochï¼ +- **value (Tensor)** â åæ°Tensor +- **grad (Tensor)** â åæ°æ¢¯åº¦Tensor +- **name (string)** â åæ°å以索å¼å°ç¹å®çè§åï¼æ£ååæçº¦ææ¡ä»¶ï¼ +- **step (int)** â æ¯ä¸ªepochå çè¿ä»£ID + +**è¿åå¼ï¼** æ´æ°åçæ¢¯åº¦tensor + +----- + +#### apply_with_lr(epoch, lr, grad, value, name=None, step=-1) + +妿gradé空ï¼åæ ¹æ®ç»å®å¦ä¹ éçæ´æ°åæ°ã + +åç±»ä¼åå¨å¿ é¡»éåè¿ä¸ªå½æ°ã妿grad为空ï¼å°ä¸å任使ä½ã + +**åæ°ï¼** +- **epoch (int)** â è®ç»çepoch ID ï¼å®æ´è®ç»ä¸éè®ç»æ°æ®ç§°ä¸ºä¸ä¸ªepochï¼ +- **lr (float)** â å¦ä¹ éç +- **value (Tensor)** â åæ°Tensor +- **grad (Tensor)** â åæ°æ¢¯åº¦Tensor +- **name (string)** â åæ°å以索å¼å°ç¹å®çè§åï¼æ£ååæçº¦ææ¡ä»¶ï¼ +- **step (int)** â æ¯ä¸ªepochå çè¿ä»£ID +**è¿åå¼ï¼** æ´æ°åçåæ°å¼ + +----- + +#### apply(epoch, grad, value, name=None, step=-1) + +å设å¦ä¹ éççæå¨é ç½®å®æï¼å®æåæ°æ´æ°ã åç±»ä¸éè¦éåè¿ä¸ªå½æ°ã + +**åæ°ï¼** +- **epoch (int)** â è®ç»çepoch ID ï¼å®æ´è®ç»ä¸éè®ç»æ°æ®ç§°ä¸ºä¸ä¸ªepochï¼ +- **value (Tensor)** â åæ°Tensor +- **grad (Tensor)** â åæ°æ¢¯åº¦Tensor +- **name (string)** â åæ°å以索å¼å°ç¹å®çè§åï¼æ£ååæçº¦ææ¡ä»¶ï¼ +- **step (int)** â æ¯ä¸ªepochå çè¿ä»£ID + +**è¿åå¼ï¼** æ´æ°åçåæ°å¼ + +----- + +### class singa.optimizer.SGD(lr=None, momentum=None, weight_decay=None, regularizer=None, constraint=None) + +åºç±»ï¼`singa.optimizer.Optimizer` + +åå§çå å«å¨éçéæºæ¢¯åº¦ä¸éç®æ³ã åæ°è¯¦è§Optimizeråºç±»ã + + +#### apply_with_lr(epoch, lr, grad, value, name, step=-1) + +----- + +### class singa.optimizer.Nesterov(lr=None, momentum=0.9, weight_decay=None, regularizer=None, constraint=None) + +åºç±»ï¼`singa.optimizer.Optimizer` + +å å«Nesterovå¨éçéæºæ¢¯åº¦ä¸éç®æ³ãåæ°è¯¦è§Optimizeråºç±»ã + +#### apply_with_lr(epoch, lr, grad, value, name, step=-1) + +----- + +### class singa.optimizer.RMSProp(rho=0.9, epsilon=1e-08, lr=None, weight_decay=None, regularizer=None, constraint=None) + +åºç±»ï¼`singa.optimizer.Optimizer` + +RMSPropä¼åå¨ãæé å¨åæ°è¯·åèOptimizeråºç±»ã + +**åæ°ï¼** +- **rho (float)** â [0, 1]é´çæµ®ç¹æ° +- **epsilon (float)** â å¾å°çå¼ï¼ä»¥é¿å æ°å¼è¯¯å·® + +#### apply_with_lr(epoch, lr, grad, value, name, step=-1) + +----- + +### class singa.optimizer.AdaGrad(epsilon=1e-08, lr=None, weight_decay=None, lr_gen=None, regularizer=None, constraint=None) + +åºç±»ï¼`singa.optimizer.Optimizer` + +AdaGradä¼åå¨ãæé å¨åæ°è¯·åèOptimizeråºç±»ã + +**åæ°ï¼** +- **epsilon (float)** â å¾å°çå¼ï¼ä»¥é¿å æ°å¼è¯¯å·® + +#### apply_with_lr(epoch, lr, grad, value, name, step=-1) + +----- + +### class singa.optimizer.Adam(beta_1=0.9, beta_2=0.999, epsilon=1e-08, lr=None, weight_decay=None, regularizer=None, constraint=None) + +åºç±»ï¼`singa.optimizer.Optimizer` + +Adaä¼åå¨ãæé å¨åæ°è¯·åèOptimizeråºç±»ã + +**åæ°ï¼** +- **beta_1 (float)** â å¨éç³»æ° +- **beta_2 (float)** â æ´åçæ¢¯åº¦å¹³æ¹çç³»æ° +- **epsilon (float)** â å¾å°çå¼ï¼ä»¥é¿å æ°å¼è¯¯å·® + +#### apply_with_lr(epoch, lr, grad, value, name, step=-1) + +æ´æ°ä¸ä¸ªåæ°å¯¹è±¡ + +**åæ°ï¼** +- **step (int)** â 累积è®ç»è¿ä»£æ°ï¼è䏿¯å½åè¿ä»£ID + +----- + +### class singa.optimizer.Regularizer + +åºç±»ï¼`object` + +Pythonåæ°æ¢¯åº¦æ£ååçåºç±»ã + +#### apply(epoch, value, grad, step=-1) + +----- + +### class singa.optimizer.CppRegularizer(conf) + +åºç±»ï¼`singa.optimizer.Regularizer` + +æ£ååçå°è£ 使ç¨C++å®ç°ã + +**åæ°ï¼** +- **conf (RegularizerConf)** â protobufé ç½®ä¿¡æ¯ + +#### apply(epoch, value, grad, step=-1) + +----- + +### class singa.optimizer.L2Regularizer(coefficient) + +åºç±»ï¼`singa.optimizer.Regularizer` + +L2æ£ååã + +**åæ°ï¼** +- **coefficient (float)** â æ£ååç³»æ° + +#### apply(epoch, value, grad, step=-1) + +----- + +### class singa.optimizer.Constraint + +åºç±»ï¼`object` + +Pythonåæ°æ¢¯åº¦çº¦æçåºç±»ã + +#### apply(epoch, value, grad, step=-1) + +----- + +### class singa.optimizer.CppConstraint(conf) + +åºç±»ï¼`singa.optimizer.Constraint` + +约æçå°è£ 使ç¨C++å®ç°ã + +**åæ°ï¼** +- **conf (RegularizerConf)** â protobufé ç½®ä¿¡æ¯ + +#### apply(epoch, value, grad, step=-1) + +----- + +### class singa.optimizer.L2Constraint(threshold=None) + +åºç±»ï¼`singa.optimizer.Constraint` + +梯度缩æ¾ä½¿å¾L2 normå°äºç»å®éå¼ã + +#### apply(epoch, value, grad, step=-1) + +----- http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/c343ff95/doc/zh/docs/snapshot.md ---------------------------------------------------------------------- diff --git a/doc/zh/docs/snapshot.md b/doc/zh/docs/snapshot.md new file mode 100644 index 0000000..9978ca1 --- /dev/null +++ b/doc/zh/docs/snapshot.md @@ -0,0 +1,42 @@ +# Snapshot + +æ¤æ¨¡åå å«io::snapshotç±»åå ¶æ¹æ³ã + +示ä¾ç¨æ³ï¼ + +```python +from singa import snapshot + +sn1 = snapshot.Snapshot('param', False) +params = sn1.read() # read all params as a dictionary + +sn2 = snapshot.Snapshot('param_new', False) +for k, v in params.iteritems(): + sn2.write(k, v) +``` + +--- + +### class singa.snapshot.Snapshot(f, mode, buffer_size=10) + +`singa::Snapshot`ç±»åæå彿°ã + +--- + +#### read() + +è°ç¨readæ¹æ³å è½½ææä¿¡æ¯ï¼åæ°åï¼åæ°å¼ï¼ã + +**è¿åå¼ï¼** ï¼åæ°åï¼åæ°å¼ï¼çåå ¸ + +--- + +#### write(param_name, param_val) + +è°ç¨writeæ¹æ³åååæ°ã + +**åæ°ï¼** +- **param_name (string)** â åæ°å +- **param_val (Tensor)** â åæ°å¼çtensor + +--- http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/c343ff95/doc/zh/docs/software_stack.md ---------------------------------------------------------------------- diff --git a/doc/zh/docs/software_stack.md b/doc/zh/docs/software_stack.md new file mode 100644 index 0000000..94f66fd --- /dev/null +++ b/doc/zh/docs/software_stack.md @@ -0,0 +1,61 @@ +# è½¯ä»¶æ¶æ + +SINGAçè½¯ä»¶æ¶æå æ¬ä¸ä¸ªä¸»è¦é¨åï¼å³æ ¸å¿ï¼Coreï¼ï¼è¾å ¥è¾åºï¼IOï¼å模åï¼Modelï¼ã å¾1éè¿°äºè¿äºç»ä»¶ä»¥åç¡¬ä»¶ãæ ¸å¿é¨åæä¾äºå å管çåå¼ éæä½ï¼è¾å ¥è¾åºå æ¬ä»ï¼åï¼ç£çåç½ç»è¯»åï¼åå ¥ï¼çç±»ï¼æ¨¡åé¨å为æºå¨å¦ä¹ 模åæä¾æ°æ®ç»æåç®æ³æ¯æï¼æ¯å¦ç¨äºç¥ç»ç½ç»æ¨¡åçå±ï¼ç¨äºéç¨æºå¨å¦ä¹ 模åçä¼åå¨/åå§å/度é/æå¤±å½æ°çã + + +<img src="../_static/images/singav1-sw.png" align="center" width="500px"/> +<br/> +<span><strong>Figure 1 - SINGA V1 software stack.</strong></span> + +## æ ¸å¿ + +å¼ é([Tensor](tensor.html))å设å¤([Device](device.html))æ¯SINGAçä¸¤ä¸ªæ ¸å¿æ½è±¡ç±»ã Tensor代表äºä¸ä¸ªå¤ç»´æ°ç»ï¼åå¨äºæ¨¡åçåéå¹¶ä¸ä¸ºæºå¨å¦ä¹ ç®æ³æä¾çº¿æ§ä»£æ°çæä½ï¼è¿äºæä½å æ¬ç©éµä¹æ³åéæºå½æ°ãæ¯ä¸ªTensorå®ä¾è¢«åé å¨ä¸ä¸ªè®¾å¤å®ä¾ä¸ã æ¯ä¸ªDeviceå®ä¾è¢«å建å¨ä¸å°ç¡¬ä»¶è®¾å¤ä¸ï¼å¦GPUæCPUæ ¸ä¸ã设å¤ç±»ç¨äºç®¡çå¼ éæå ç¨çå å以å卿§è¡åå 䏿§è¡å¼ éæä½ï¼æ¯å¦CPUçº¿ç¨æCUDAæµã + +ä¾èµäºç¡¬ä»¶åç¼ç¨è¯è¨ï¼SINGAå®ç°äºä»¥ä¸ç¹å®ç设å¤ç±»ï¼ + +* **CudaGPU** 代表ä¸ä¸ªNvidia GPUã æ§è¡åå æ¯CUDAæµã +* **CppCPU** 代表ä¸ä¸ªCPUã æ§è¡åå æ¯CPU线ç¨ã +* **OpenclGPU** 代表NvidiaåAMDçGPUãæ§è¡åå æ¯CommandQueuesãOpenCLåå¾å¤ç¡¬ä»¶è®¾å¤å ¼å®¹ï¼æ¯å¦FPGAåARMï¼æä»¥OpenclGPUå¯ä»¥æ©å±å°å ¶ä»è®¾å¤ä¸ã + +ä¸åç±»åç设å¤ä½¿ç¨ä¸åç¼ç¨è¯è¨ä¹¦åç¨äºå¼ éæä½çæ ¸å½æ°ï¼ + +* CppMath (tensor_math_cpp.h) ç¨Cppå®ç°äºCppCPUçå¼ éæä½ +* CudaMath (tensor_math_cuda.h) ç¨CUDAå®ç°äºCudaGPUçå¼ éæä½ +* OpenclMath (tensor_math_opencl.h) ç¨OpenCLå®ç°äºOpenclGPUçå¼ éæä½ + +å¦å¤ï¼ä¸åç±»åçæ°æ®ï¼æ¯å¦float32åfloat16,å¯ä»¥éè¿å å ¥ç¸åºçå¼ é彿°æ¥æ¯æã + +å ¸åå°ï¼ç¨æ·å°å建ä¸ä¸ªDeviceå®ä¾å¹¶æå®ä¼ ç»å¤ä¸ªTensorå®ä¾ã å½ç¨æ·è°ç¨Tensor彿°æ¶ï¼è¿äºå½æ°ä¼èªå¨å¤èµ·å¯¹åºçå®ç°(CppMath/CudaMath/OpenclMath)ã æ¢å¥è¯è¯´ï¼Tensoræä½çå®ç°å¯¹ç¨æ·æ¯éæçã + +大夿°æºå¨å¦ä¹ ç®æ³å¯ä»¥ç¨ï¼ç´§å¯çæç¨ççï¼Tensorè¡¨è¾¾ã æä»¥ï¼éè¿å¼ éçæ½è±¡ï¼SINGAå¯ä»¥è¿è¡å¾å¤æ¨¡åï¼å æ¬æ·±åº¦å¦ä¹ 模ååå ¶ä»ä¼ ç»æºå¨å¦ä¹ 模åã + +TensoråDeviceçæ½è±¡åå¯ä»¥æ©å±éè¿ä¸åç¼ç¨è¯è¨ä»¥æ¯æå¤§é硬件设å¤ã ä¸ä¸ªæ°ç硬件设å¤å¯ä»¥éè¿æ·»å ä¸ä¸ªæ°çDeviceåç±»åå®ç°ç¸åºçå¼ éæä½ï¼xxxMathï¼å ä»¥æ¯æã + +åºäºé度å空é´å ç¨çä¼åå¯ä»¥è¢«Deviceå®ç°ã å®ç®¡ççæä½æ§è¡åå åçåé åéæ¾ã æ´å¤çä¼åç»èå¯ä»¥å¨[Device页é¢](device.html)çå°ã + + +## 模å + +å¨TensoråDeviceçæ½è±¡åä¹ä¸ï¼SINGAæä¾äºæ´é«çº§çç±»ç¨äºæºå¨å¦ä¹ 模åã + +* [Layer](layer.html)åå®çåç±»ç¹å«ç¨äºç¥ç»ç½ç»ã æ¯ä¸ªå±ä¸ºååä¼ éç¹å¾åååä¼ éæ¢¯åº¦æä¾å½æ°æ¯æã å®ä»¬å°å¤æçæä½å°è£ èµ·æ¥ä½¿ç¨æ·å¯ä»¥å¾å®¹æå建ç¥ç»ç½ç»è¿æ¥ä¸ç³»åå±ã + +* [Initializer](initializer.html)åå®çå类为åå§å模ååæ°ï¼åå¨å¨Tesnorå®ä¾ä¸ï¼æä¾äºå¯åçæ¹æ³ï¼å æ¬Uniform,Gaussianççã + +* [Loss](loss.html)åå®çåç±»å®ä¹äºè®ç»ç®æ æå¤±å½æ°ãä¸ç®æ æå¤±å¯¹åºçè®¡ç®æå¤±å¼åè®¡ç®æ¢¯åº¦ç彿°é½å·²è¢«å®ç°ã 常è§çæå¤±å½æ°å æ¬å¹³æ¹å·®å交åçµã + +* [Metric](metric.html)åå®çåç±»æä¾äºè¯ä¼°æ¨¡åæ§è½ç彿°ï¼æ¯å¦ç²¾ç¡®åº¦ã + +* [Optimizer](optimizer.html)åå®çåç±»å®ç°äºå¦ä½å©ç¨åæ°æ¢¯åº¦æ´æ°æ¨¡ååæ°çæ¹æ³ï¼å æ¬SGD, AdaGrad, RMSPropççã + + +## è¾å ¥è¾åº + +è¾å ¥è¾åºå 嫿°æ®å è½½ï¼æ°æ®é¢å¤çåä¿¡æ¯ä¼ éç±»ã + +* Readeråå®çåç±»ä»ç£çæä»¶å è½½åç¬¦ä¸²è®°å½ +* Writeråå®çåç±»å°å符串记å½åå°ç£çæä»¶ä¸ +* Encoderåå®çåç±»å°Tensorå®ä¾ç¼è¯æåç¬¦ä¸²è®°å½ +* Decoderåå®çåç±»å°å符串记å½è§£ç 为Tensorå®ä¾ +* Endpointä»£è¡¨ä¸ºæ¶æ¯ä¼ éæä¾å½æ°ç交äºç»ç«¯ +* Message代表Endpointå®ä¾é´çäº¤äºæ¶æ¯ãå®ä¼ä¼ éå æ°æ®åè´è½½ http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/c343ff95/doc/zh/docs/tensor.md ---------------------------------------------------------------------- diff --git a/doc/zh/docs/tensor.md b/doc/zh/docs/tensor.md new file mode 100644 index 0000000..f8cd5b8 --- /dev/null +++ b/doc/zh/docs/tensor.md @@ -0,0 +1,683 @@ +# å¼ é(Tensor) + +æ¯ä¸ªTensorå®ä¾é½æ¯ä¸ä¸ªåé å¨ç¹å®Deviceå®ä¾ä¸çå¤ç»´æ°ç»ã Tensorå®ä¾åå¨äºåéå¹¶æä¾äºç¨æ·ä¸å¯è§çæ¯æå¤ç§è®¾å¤çä»£æ°æä½ã注æï¼ç¨æ·éè¦ç¡®ä¿é¤äºæ·è´ä¹å¤çtensoræä½é½æ¯å¨ç¸åç设å¤ä¸è¿è¡çã + +Tensorçå®ç° + +SINGAæä¸ç§Tensor彿°çå®ç°ï¼åå«å¨ä¸å设å¤ä¸ã + +* `tensor_math_cpp.h` ç¨Cppå®ç°äºCppCPUä¸çåç§æä½ +* `tensor_math_cuda.h` ç¨Cuda (åcuBLAS)å®ç°äºCudaGPUä¸çåç§æä½ +* `tensor_math_opencl.h` ç¨OpenCLå®ç°äºOpenclGPUä¸çåç§æä½ + + +## PYTHON API + +ç¨æ³ç¤ºä¾ï¼ + +```python +import numpy as np +from singa import tensor +from singa import device + +# create a tensor with shape (2,3), default CppCPU device and float32 +x = tensor.Tensor((2, 3)) +x.set_value(0.4) + +# create a tensor from a numpy array +npy = np.zeros((3, 3), dtype=np.float32) +y = tensor.from_numpy(npy) + +y.uniform(-1, 1) # sample values from the uniform distribution + +z = tensor.mult(x, y) # gemm -> z of shape (2, 3) + +x += z # element-wise addition + +dev = device.get_default_device() +x.to_device(dev) # move the data to a gpu device + +r = tensor.relu(x) + +s = tensor.to_numpy(r) # tensor -> numpy array +``` + +æä¸¤ç§ç±»åçtensor彿°: + +**Tensoræå彿°** + +å°ä¼æ¹åTensorå®ä¾çç¶æ + +**Tensor模åå彿°** + +æ¥åTensorå®ä¾ä½ä¸ºèªåé以åè¿åTensorå®ä¾ + +æ¯ä¸ªTensorå®ä¾å¨è¯»åæ°æ®åé½å¿ é¡»ååå§å + +--- + +### class singa.tensor.Tensor(shape=None, device=None, dtype=0) + +å建Py Tensorï¼å°è£ äºä¸ä¸ªåºäºswig转æ¢çCPP Tensorã +ä¸ä¸ªåæ°å嫿¯Tensorçä¸ä¸ªå±æ§ã + +**åæ°ï¼** +- **shape (list<int>)** â ä¸ä¸ªåè¡¨çæ´å½¢æ°æ®ä½ä¸ºTensorçå½¢ç¶ã妿shape没ææå®ï¼å°ä¼å建ä¸ä¸ªä¼ªTensorã +- **device** â swig转åç使ç¨è®¾å¤æ¨¡ååçDeviceå®ä¾ã å¦æä¸ºNoneï¼é»è®¤çCPU设å¤å°ä¼è¢«ä½¿ç¨ã +- **dtype** â æ°æ®ç±»åã ç®åï¼å¤§å¤æ°æä½ä» æ¯ækFloat32ã + +--- + +#### T() + +æµ æ·è´ã + +**è¿åå¼ï¼** ä¸ä¸ªæ°Tensorï¼å ±äº«åºå±æ°æ®æå å åï¼ä½æ 记为该tensorçè½¬ç½®çæ¬ã + +--- + +#### add_column(v) + +对该Tensoræ¯åå ä¸ä¸ä¸ªtensorã + +**åæ°ï¼** +- **v (Tensor)** â 被ä½ä¸ºä¸åå å°åtensorçTensor + +--- + +#### add_row(v) + +对该tensoræ¯è¡å ä¸ä¸ªtensorã + +**åæ°ï¼** +- **v (Tensor)** â 被ä½ä¸ºè¡å å°åtensorçTensor + +--- + +#### bernoulli(p) + +对æ¯ä¸ªå ç´ ï¼æç §ç»å®æ¦çä»0/1ä¸åæ ·ã + +**åæ°ï¼** +- **p (float)** â 以æ¦çpåæ ·ä¸ä¸ªå ç´ ä¸º1 + +--- + +#### clone() + +**è¿åå¼ï¼** ä¸ä¸ªæ°Tensorï¼æ¯å¾ æ·è´Tensorçæ·±æ·è´ + +--- + +#### copy() + +è°ç¨singa::Tensorçæ·è´æé å¨è¿è¡æµ æ·è´ã + +--- + +#### copy_data(t) + +ä»å¦ä¸ä¸ªTensorå®ä¾æ·è´æ°æ®ã + +**åæ°ï¼** +- **t (Tensor)** â æºTensor + +--- + +#### copy_from_numpy(np_array, offset=0) + +ä»numpyæ°ç»ä¸æ·è´æ°æ®ã + +**åæ°ï¼** +- **np_array** â æºnumpyæ°ç» +- **offset (int)** â ç®æ åç§» + +--- + +#### deepcopy() + +åclone() + +**è¿åå¼ï¼** æ°Tensor + +--- + +#### div_column(v) + +å°Tensoræ¯åé¤ä»¥vã + +**åæ°ï¼** +- **v (Tensor)** â 1ç»´tensorï¼åæºtensorçåé¿ç¸å + +--- + +#### div_row(v) + +å°Tensoræ¯è¡é¤ä»¥vã + +**åæ°ï¼** +- **v (Tensor)** â 1ç»´tensorï¼åæºtensorçè¡é¿ç¸å + +--- + +#### gaussian(mean, std) + +æç §é«æ¯åå¸å¯¹æ¯ä¸ªå ç´ éæ ·ã + +**åæ°ï¼** +- **mean (float)** â åå¸çåå¼ +- **std (float)** â åå¸çæ åå·® + +--- + +#### is_empty() + +**è¿åå¼ï¼** æ ¹æ®tensorçå½¢ç¶ï¼å¦ææ¯ç©ºçè¿åTrue + +--- + +#### is_transpose() + +**è¿åå¼ï¼** 妿å 鍿°æ®è¢«è½¬ç½®åè¿åTrueï¼å¦åè¿åFalse + +--- + +#### l1() + +**è¿åå¼ï¼** L1 norm + +--- + +#### l2() + +**è¿åå¼ï¼** L2 norm + +--- + +#### memsize() + +- **è¿åå¼ï¼** 被åé ç»è¯¥tensorçBytesæ° + +--- + +#### mult_column(v) + +å°tensoræ¯ååvåå ç´ çº§å«ä¹æ³ã + +**åæ°ï¼** +- **v (Tensor)** â 1ç»´tensorï¼åæºtensoråé¿çé¿ + +--- + +#### mult_row(v) + +å°tensoræ¯è¡åvåå ç´ çº§å«ä¹æ³ã + +**åæ°ï¼** +- **v (Tensor)** â 1ç»´tensorï¼åæºtensorè¡é¿çé¿ + +--- + +#### ndim() + +**è¿åå¼ï¼** tensorç维度 + +--- + +#### reset_like(t) + +æ ¹æ®ç»å®tensoréç½®æºtensorå½¢ç¶ï¼æ°æ®ç±»åå设å¤ã + +**åæ°ï¼** +- **t (Tensor)** â éè¦éç½®çtensor + +--- + +#### set_value(x) + +设置ææå ç´ å¼ä¸ºç»å®å¼ã + +**åæ°ï¼** +- **x(float)** - å¾ è®¾å®çå¼ + +--- + +#### size() + +**è¿åå¼ï¼** tensorä¸çå ç´ ä¸ªæ° + +--- + +#### to_device(device) + +å°tensor䏿°æ®ä¼ å°æå®è®¾å¤ä¸ã + +**åæ°ï¼** +- **device** - ä»CudaGPU/CppCPU/OpenclGPU转æ¢çswigè®¾å¤ + +--- + +#### to_host() + +å°tensoræ°æ®ä¼ å°é»è®¤çCppCPU设å¤ä¸ã + +--- + +#### uniform(low, high) + +ä»åååå¸ä¸è¿è¡éæ ·ã + +**åæ°ï¼** +- **low (float)** â ä¸ç +- **high (float)** â ä¸ç + +--- + +#### singa.tensor.abs(t) + +**åæ°ï¼** +- **t(Tensor)** - è¾å ¥tensor + +**è¿åå¼ï¼** ä¸ä¸ªæ°tensorï¼å ¶å ç´ å¼ä¸ºy=abs(x)ï¼xæ¯tä¸çå ç´ + +--- + +#### singa.tensor.add(lhs, rhs, ret=None) + +å ç´ çº§å«å æ³ã + +**åæ°ï¼** +- **lhs (Tensor)** â å·¦æä½tensor +- **rhs (Tensor)** â 峿ä½tensor +- **ret (Tensor, optional)** â 妿䏿¯ç©ºï¼ ç»æå°è¢«ä¿åå¨å ¶ä¸ï¼å¦åï¼ä¸ä¸ªæ°tensorä¼è¢«å建以ä¿åç»æã + +**è¿åå¼ï¼** æ°tensor + +--- + +#### singa.tensor.add_column(alpha, v, beta, M) + +å°vå å°Mçæ¯ä¸ªååé, å®ä¹Mä¸å为mï¼m=alpha * v + beta * m + +**åæ°ï¼** +- **alpha (float)** â vçç³»æ° +- **v (Tensor)** â 1ç»´tensor +- **beta (float)** â Mçç³»æ° +- **M (Tensor)** â 2ç»´tensor + +**è¿åå¼ï¼** M + +--- + +#### singa.tensor.add_row(alpha, v, beta, M) + +å°vå å°Mçæ¯ä¸ªè¡åé, å®ä¹Mä¸è¡ä¸ºmï¼m=alpha * v + beta * mã + +**åæ°ï¼** +- **alpha (float)** â vçç³»æ° +- **v (Tensor)** â 1ç»´tensor +- **beta (float)** â Mçç³»æ° +- **M (Tensor)** â 2ç»´tensor + +**è¿åå¼ï¼** M + +--- + +#### singa.tensor.average(t, axis=None) + +**åæ°ï¼** +- **t (Tensor)** â è¾å ¥Tensor +- **axis (int, optional)** â å¦æä¸ºç©ºï¼åææå ç´ çå¹³åå¼ï¼å¦åï¼åç»å®ç»´åº¦çå ç´ å¹³åå¼ã0表示ååå¼ï¼1表示è¡åå¼ã + +**è¿åå¼ï¼** 妿axisæ¯ç©ºï¼è¿åä¸ä¸ªfloatå¼ï¼å¦åï¼è¿åä¸ä¸ªæ°tensor + +--- + +#### singa.tensor.axpy(alpha, x, y) + +å ç´ çº§å«æä½ y += alpha * xã + +**åæ°ï¼** +- **alpha (float)** â xçç³»æ° +- **x (Tensor)** â 被å çtensor +- **y (Tensor)** â åtensor + +**è¿åå¼ï¼** y + +--- + +#### singa.tensor.bernoulli(p, t) + +对æ¯ä¸ªå ç´ çæä¸ä¸ªäºè¿å¶ä½ã + +**åæ°ï¼** +- **p (float)** â each element is 1 with probability p; and 0 with 1 - p +- **t (Tensor)** â the results are put into t + +**è¿åå¼ï¼** t + +--- + +#### singa.tensor.copy_data_to_from(dst, src, size, dst_offset=0, src_offset=0) + +å°æ°æ®ä»ä¸ä¸ªtensorå®ä¾æ·è´å°å¦ä¸ä¸ªtensorå®ä¾ã + +**åæ°ï¼** +- **dst (Tensor)** â ç®æ Tensor +- **src (Tensor)** â æºTensor +- **size (int)** â æ·è´å ç´ æ°ç® +- **dst_offset (int)** â æ·è´å°dstå ç´ å¨dstçèµ·å§åç§» +- **src_offset (int)** â å¾ æ·è´çå ç´ å¨srcä¸çèµ·å§åç§» + +--- + +#### singa.tensor.div(lhs, rhs, ret=None) + +å ç´ çº§å«ç餿³ã + +**åæ°ï¼** +- **lhs (Tensor)** â å·¦æä½tensor +- **rhs (Tensor)** â 峿ä½tensor +- **ret (Tensor, optional)** â 妿é空ï¼å°æç»æåå ¥ï¼å¦åï¼å建ä¸ä¸ªæ°tensorå¹¶å°ç»æåå ¥ + +**è¿åå¼ï¼** åæè¿ç®ç»æçtensor + +--- + +#### singa.tensor.eltwise_mult(lhs, rhs, ret=None) + +å ç´ çº§å«ç乿³ã + +**åæ°ï¼** +- **lhs (Tensor)** â å·¦æä½tensor +- **rhs (Tensor)** â 峿ä½tensor +- **ret (Tensor, optional)** â 妿é空ï¼å°æç»æåå ¥ï¼å¦åï¼å建ä¸ä¸ªæ°tensorå¹¶å°ç»æåå ¥ + +**è¿åå¼ï¼** ä¿åè¿ç®ç»æçtensor + +--- + +#### singa.tensor.exp(t) + +**åæ°ï¼** +- **t (Tensor)** â è¾å ¥tensor + +**è¿åå¼ï¼** æ°tensorï¼å ¶ä¸å ç´ ä¸º y = exp(x)ï¼x为tä¸å ç´ + +--- + +#### singa.tensor.from_numpy(np_array) + +æ ¹æ®numpyæ°ç»çå½¢ç¶ãæ°æ®ç±»ååæ°å¼å建ä¸ä¸ªtensorã + +**åæ°ï¼** +- **np_array** â numpyæ°ç» + +**è¿åå¼ï¼** åé å¨é»è®¤CppCPU设å¤ä¸çtensorå®ä¾ + +--- + +#### singa.tensor.gaussian(mean, std, t) + +æç §ç»å®é«æ¯åå¸çææ°å¼ã + +**åæ°ï¼** +- **mean (float)** â 髿¯åå¸çåå¼ +- **std (float)** â 髿¯åå¸çæ åå·® +- **t (Tensor)** â ç»æè¢«åå ¥t + +**è¿åå¼ï¼** t + +--- + +#### singa.tensor.ge(t, x) + +å ç´ çº§å«çæ¯è¾ï¼t >= xã + +**åæ°ï¼** +- **t (Tensor)** â å·¦æä½æ° +- **x (Tensor or float)** â 峿使° + +**è¿åå¼ï¼** 0.0f æ t[i] >= x[i] ? 1.0f:0.0f + +**è¿åå¼ç±»åï¼** tensorï¼æ¯ä¸ªå ç´ ä¸º t[i] >= x ? 1.0f + +--- + +#### singa.tensor.gt(t, x) + +å ç´ çº§å«çæ¯è¾ï¼t > xã + +**åæ°ï¼** +- **t (Tensor)** â å·¦æä½tensor +- **x (Tensor or float)** â 峿ä½tensorææ° + +**è¿åå¼ï¼** 0.0f æ t[i] > x[i] ? 1.0f:0.0f + +**è¿åå¼ç±»åï¼** tensorï¼æ¯ä¸ªå ç´ ä¸º t[i] > x ? 1.0f + +--- + +#### singa.tensor.le(t, x) + +å ç´ çº§å«çæ¯è¾ï¼t <= xã + +**åæ°ï¼** +- **t (Tensor)** â å·¦æä½tensor +- **x (Tensor or float)** â 峿ä½tensorææ° + +**è¿åå¼ï¼** 0.0f æ t[i] <= x[i] ? 1.0f:0.0f + +**è¿åå¼ç±»åï¼** tensorï¼æ¯ä¸ªå ç´ ä¸º t[i] <= x ? 1.0f + +--- + +#### singa.tensor.lt(t, x) + +å ç´ çº§å«çæ¯è¾ï¼t < xã + +**åæ°ï¼** +- **t (Tensor)** â å·¦æä½tensor +- **x (Tensor or float)** â 峿ä½tensorææ° + +**è¿åå¼ï¼** 0.0f æ t[i] < x[i] ? 1.0f:0.0f + +**è¿åå¼ç±»åï¼** tensorï¼æ¯ä¸ªå ç´ ä¸º t[i] < x ? 1.0f + +--- + +#### singa.tensor.log(t) + +**åæ°ï¼** +- **t (Tensor)** â è¾å ¥tensor + +**è¿åå¼ï¼** ä¸ä¸ªæ°tensorï¼å ¶å ç´ å¼ä¸ºy = log(x)ï¼xæ¯tä¸çå ç´ + +--- + +#### singa.tensor.mult(A, B, C=None, alpha=1.0, beta=0.0) + +ç©éµ-ç©éµæç©éµ-åé乿³, 彿°è¿å C = alpha * A * B + beta * Cã + +**åæ°ï¼** +- **A (Tensor)** â 2ç»´Tensor +- **B (Tensor)** â 妿Bæ¯1ç»´Tensor, å°è°ç¨GEMVåç©éµ-åé乿³ï¼å¦åå°è°ç¨GEMMã +- **C (Tensor, optional)** â åå¨ç»æï¼å¦æä¸ºç©ºï¼å°å建æ°tensoråå¨ç»æã +- **alpha (float)** â A * B çç³»æ° +- **beta (float)** â C çç³»æ° + +**è¿åå¼ï¼** ä¿åè¿ç®ç»æçtensor + +--- + +#### singa.tensor.pow(t, x, out=None) + +**åæ°ï¼** +- **t (Tensor)** â è¾å ¥tensor +- **x (float or Tensor)** â 妿xæ¯æµ®ç¹æ° y[i] = t[i]^x; å¦å y[i]= t[i]^x[i] +- **out (None or Tensor)** â 妿é空ï¼å°åå ¥ç»æï¼å¦åï¼å°å建ä¸ä¸ªæ°tensorä¿åç»æã + +**è¿åå¼ï¼** ä¿åè¿ç®ç»æçtensor + +--- + +#### singa.tensor.relu(t) + +**åæ°ï¼** +- **t (Tensor)** â è¾å ¥tensor + +**è¿åå¼ï¼** tensorï¼å ¶ä¸å ç´ ä¸º y = x è¥x >0ï¼å¦åy = 0ï¼x为tä¸å ç´ + +--- + +#### singa.tensor.reshape(t, s) + +æ¹åtensorçå½¢ç¶ã + +**åæ°ï¼** +- **t (Tensor)** â å¾ æ¹åå½¢ç¶çtensor +- **s (list<int>)** â æ°å½¢ç¶ï¼ä½ç§¯ååtensorä½ç§¯ç¸å + +**è¿åå¼ï¼** æ°tensor + +--- + +#### singa.tensor.sigmoid(t) + +**åæ°ï¼** +- **t (Tensor)** â è¾å ¥tensor + +**è¿åå¼ï¼** tensorï¼å ¶ä¸å ç´ ä¸º y = sigmoid(x)ï¼x为tä¸å ç´ + +--- + +#### singa.tensor.sign(t) + +**åæ°ï¼** +- **t (Tensor)** â è¾å ¥tensor + +**è¿åå¼ï¼** tensorï¼å ¶ä¸å ç´ ä¸º y = sign(x)ï¼x为tä¸å ç´ + +--- + +#### singa.tensor.sizeof(dtype) + +**è¿åå¼ï¼** 便®core.protoä¸å®ä¹çSINGAæ°æ®ç±»åï¼è¿åç»å®ç±»åæå Byteæ°ç® + +--- + +#### singa.tensor.softmax(t, out=None) + +对tensoræ¯è¡åSoftMaxã + +**åæ°ï¼** +- **t (Tensor)** â è¾å ¥1ç»´æ2ç»´tensor +- **out (Tensor, å¯é)** â 妿é空ï¼å°åå ¥ç»æ + +**è¿åå¼ï¼** ä¿åæä½ç»æçtensor + +--- + +#### singa.tensor.sqrt(t) + +**åæ°ï¼** +- **t (Tensor)** â è¾å ¥tensor + +**è¿åå¼ï¼** tensorï¼å ¶ä¸å ç´ ä¸º y = sqrt(x)ï¼x为tä¸å ç´ + +--- + +#### singa.tensor.square(t) + +**åæ°ï¼** +- **t (Tensor)** â è¾å ¥tensor + +**è¿åå¼ï¼** tensorï¼å ¶ä¸å ç´ ä¸º y = x * xï¼x为tä¸å ç´ + +--- + +#### singa.tensor.sub(lhs, rhs, ret=None) + +å ç´ çº§å«çåæ³ã + +**åæ°ï¼** +- **lhs (Tensor)** â å·¦æä½tensor +- **rhs (Tensor)** â 峿ä½tensor +- **ret (Tensor, å¯é)** â 妿é空ï¼å°åå ¥ç»æï¼å¦åï¼å°å建ä¸ä¸ªæ°tensorä¿å + +**è¿åå¼ï¼** åæ¾ç»æçtensor + +--- + +#### singa.tensor.sum(t, axis=None) + +å¨ç»å®çç»´åº¦ä¸æ±åã + +**åæ°ï¼** +- **t (Tensor)** â è¾å ¥Tensor +- **axis (int, å¯é)** â å¦æä¸ºç©ºï¼å°å¯¹ææå ç´ æ±åï¼å¦æç»å®æ°å¼ï¼å°æ²¿ç»å®ç»´åº¦æ±åï¼æ¯å¦ï¼0 - æåæ±åï¼1 - æè¡æ±åã + +**è¿åå¼ï¼** 妿æ¯å¯¹æ´ä½æ±åï¼è¿åä¸ä¸ªæµ®ç¹æ°ï¼å¦åè¿åtensor + +--- + +#### singa.tensor.sum_columns(M) + +æåæ±åã + +**åæ°ï¼** +- **M (Tensor)** â è¾å ¥ç2ç»´tensor + +**è¿åå¼ï¼** äº§çæ±åç»æçtensor + +--- + +#### singa.tensor.sum_rows(M) + +æè¡æ±åã + +**åæ°ï¼** +- **M (Tensor)** â è¾å ¥ç2ç»´tensor + +**è¿åå¼ï¼** äº§çæ±åç»æçtensor + +--- + +#### singa.tensor.tanh(t) + +**åæ°ï¼** +- **t (Tensor)** â è¾å ¥tensor + +**è¿åå¼ï¼**tensorï¼å ¶ä¸å ç´ ä¸º y = tanh(x)ï¼x为tä¸å ç´ + +--- + +#### singa.tensor.to_host(t) + +å°æ°æ®æ·è´å°host设å¤ä¸ã + +--- + +#### singa.tensor.to_numpy(t) + +æ·è´tensoræ°æ®å°numpyæ°ç»ã + +**åæ°ï¼** +- **t (Tensor)** â è¾å ¥tensor + +**è¿åå¼ï¼** numpyæ°ç» + +--- + +#### singa.tensor.uniform(low, high, t) + +æç §åååå¸çææ°å¼ã + +**åæ°ï¼** +- **low (float)** â ä¸ç +- **hight (float)** â ä¸å± +- **t (Tensor)** â ç»æåå ¥t + +**è¿åå¼ï¼** t + +--- http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/c343ff95/doc/zh/docs/utils.md ---------------------------------------------------------------------- diff --git a/doc/zh/docs/utils.md b/doc/zh/docs/utils.md new file mode 100644 index 0000000..41a60d1 --- /dev/null +++ b/doc/zh/docs/utils.md @@ -0,0 +1,13 @@ +# Utils + +--- + +#### singa.utils.update_progress(progress, info) + +æ¾ç¤ºå®æè¿ç¨æ¡åç¨æ·ä¿¡æ¯ã + +**åæ°ï¼** +- **progress (float)** â å®æåº¦[0, 1]ï¼è´æ°è¡¨ç¤ºè¢«ä¸æï¼>=1è¡¨ç¤ºä»¥å®æ +- **info (str)** â å¾ å±ç¤ºä¿¡æ¯çå符串 + +---
