self.contents.floatSize = value def _setIntSize(self, value): self.contents.intSize = value def _setTensors(self, value): self.contents.tensors = value def _setFloats(self, value): self.contents.floats = value def _setInts(self, value): self.contents.ints = value ExtraData = POINTER(_ExtraData) ExtraData.__doc__ = " cnn_ExtraData 구조체의 포인터에 프로퍼티와 메소드를 추가한 클래스입니다." ExtraData.tensorSize = property(_getTensorSize, _setTensorSize) ExtraData.floatSize = property(_getFloatSize, _setFloatSize) ExtraData.intSize = property(_getIntSize, _setIntSize) ExtraData.tensors = property(_getTensors, _setTensors) ExtraData.floats = property(_getFloats, _setFloats) ExtraData.ints = property(_getInts, _setInts) ExtraData.create = staticmethod(_create) ExtraData.release = _release
lib.cnn_layer_update.argtypes = (POINTER(_Layer), Optimizer, c_int, c_int) lib.cnn_layer_update.restype = POINTER(_Layer) lib.cnn_layer_initUpdate.argtypes = (POINTER(_Layer), Optimizer) lib.cnn_layer_initUpdate.restype = POINTER(_Layer) lib.cnn_layer_getLeftTerminal.argtypes = [POINTER(_Layer)] lib.cnn_layer_getLeftTerminal.restype = POINTER(_Layer) lib.cnn_layer_getRightTerminal.argtypes = [POINTER(_Layer)] lib.cnn_layer_getRightTerminal.restype = POINTER(_Layer) lib.cnn_layer_link.argtypes = [POINTER(_Layer), POINTER(_Layer)] lib.cnn_layer_link.restype = c_int lib.cnn_layer_setLearningData.argtypes = [POINTER(_Layer), POINTER(_Layer)] lib.cnn_layer_setLearningData.restype = POINTER(_Layer) Layer = POINTER(_Layer) Layer.__doc__ = " cnn_Layer 구조체의 포인터에 프로퍼티와 메소드를 추가한 클래스입니다. Layer.create 정젹 변수로 생성하여 사용하세요." Layer.create = staticmethod(_create) Layer.release = _release_deep Layer.forward = _forward Layer.backward = _backward Layer.initForward = _initForward Layer.initBackward = _initBackward Layer.update = _update Layer.initUpdate = _initUpdate Layer.getLeftTerminal = _getLeftTerminal Layer.getRightTerminal = _getRightTerminal Layer.link = _link Layer.setLearningData = _setLearningData Layer.name = property(_getName, _setName)
def _create(learning_rate, update, initUpdate): return lib.cnn_create_optimizer(learning_rate, update, initUpdate) def _release(self): lib.cnn_release_optimizer(self) cnn_optimizer_callback_update = CFUNCTYPE(None, POINTER(_Optimizer), UpdateList, c_int, c_int) cnn_optimizer_callback_initUpdate = CFUNCTYPE(None, POINTER(_Optimizer), UpdateList) lib.cnn_optimizer_update.argtypes = (POINTER(_Optimizer), UpdateList) lib.cnn_optimizer_initUpdate.argtypes = [POINTER(_Optimizer), UpdateList] lib.cnn_create_optimizer.argtypes = (c_int, cnn_optimizer_callback_update, cnn_optimizer_callback_initUpdate) lib.cnn_create_optimizer.restype = POINTER(_Optimizer) lib.cnn_release_optimizer.argtypes = [POINTER(_Optimizer)] Optimizer = POINTER(_Optimizer) Optimizer.__doc__ = " cnn_Optimizer 구조체의 포인터에 프로퍼티와 메소드를 추가한 클래스입니다." Optimizer.learning_raate = property(_getLearningRate, _setLearningRate) Optimizer._update = property(_getUpdate, _setUpdate) Optimizer.create = staticmethod(_create) Optimizer.release = _release Optimizer.update = _update Optimizer.initUpdate = _initUpdate
lib.cnn_release_updateset(self) del self # 검증 안됨 def _getDelta(self): return self.contents.delta def _getValue(self): return self.contents.value def _getMomnt(self): return self.contents.momnt def _setDelta(self, value): self.contents.delta = value def _setValue(self, value): self.contents.value = value def _setMomnt(self, value): self.contents.momnt = value UpdateSet = POINTER(_UpdateSet) UpdateSet.__doc__ = "cnn_UpdateSet 구조체의 포인터에 프로퍼티와 메소드를 추가한 클래스입니다." UpdateSet.delta = property(_getDelta, _setDelta) UpdateSet.value = property(_getValue, _setValue) UpdateSet.momnt = property(_getMomnt, _setMomnt) UpdateSet.create = staticmethod(_create) UpdateSet.release = _release
def _release_deep(pUpdateList): lib.cnn_release_updatelist_deep(pUpdateList) def _getSets(self): return self.contents.sets def _getSetSize(self): return self.contents.setSize def _setSets(self, value): self.contents.sets = value def _setSetSize(self, value): self.contents.setSize = value lib.cnn_create_updatelist.argtypes = [c_int] lib.cnn_create_updatelist.restype = POINTER(_UpdateList) lib.cnn_release_updatelist_deep.argtypes = [POINTER(_UpdateList)] UpdateList = POINTER(_UpdateList) UpdateList.__doc__ = 'cnn_UpdateList의 구조체 포인터인 클래스로, 프로퍼티와 메소드를 제공합니다.' UpdateList.sets = property(_getSets, _setSets) UpdateList.setSize = property(_getSetSize, _setSetSize) UpdateList.create = staticmethod(_create) UpdateList._release = _release_deep
c_scalas = (c_float * len(scalas32f))(scalas32f) c_shapes = (c_int * len(shape)) if (deep): return lib.tensor_create_nonstruct_deep(c_scalas, len(scalas32f), c_shapes, len(shape)) else: return lib.tensor_create_nonstruct(c_scalas, len(scalas32f), c_shapes, len(shape)) def _release_deep(self): lib.tensor_release_deep(self) del self # 검증 안됨 def _referTo(self, tensor): lib.tensor_referTo(self, tensor) return self Tensor = POINTER(_Tensor) Tensor.__doc__ = "텐서 구조체 포인터에 프로퍼티와 메소드를 추가한 클래스입니다." Tensor.numpy2Tensor = staticmethod(_numpy2Tensor) Tensor.release_deep = _release_deep Tensor.referTo = _referTo Tensor.create = staticmethod(_create) Tensor.size = property(_getSize, _setSize) Tensor.dim = property(_getDim, _setDim) Tensor.scalas = property(_getScalas, _setScalas) Tensor.shapes = property(_getShapes, _setShapes)