Implement Model_addOperation
authorsjsujinkim <sjsujin.kim@samsung.com>
Mon, 26 Mar 2018 08:43:24 +0000 (17:43 +0900)
committer최형규/동작제어Lab(SR)/Senior Engineer/삼성전자 <hk0110.choi@samsung.com>
Mon, 26 Mar 2018 11:02:49 +0000 (20:02 +0900)
This commits Model_addOperation and enables below helpers.

- setFromIntList
- validCode

Signed-off-by: sjsujinkim <sjsujin.kim@samsung.com>
src/runtime/ref/nn/common/Utils.cpp
src/runtime/ref/nn/common/include/Utils.h
src/runtime/ref/nn/runtime/ModelBuilder.cpp
src/runtime/ref/nn/runtime/NeuralNetworks.cpp

index 08fc067..252e9ff 100644 (file)
@@ -284,7 +284,7 @@ int validateOperandType(const ANeuralNetworksOperandType& type, const char* tag,
     }
     return ANEURALNETWORKS_NO_ERROR;
 }
-#if 0 // REF-ANN
+
 int validateOperandList(uint32_t count, const uint32_t* list, uint32_t operandCount,
                         const char* tag) {
     for (uint32_t i = 0; i < count; i++) {
@@ -296,7 +296,7 @@ int validateOperandList(uint32_t count, const uint32_t* list, uint32_t operandCo
     }
     return ANEURALNETWORKS_NO_ERROR;
 }
-
+#if 0 // REF-ANN
 static bool validOperandIndexes(const hidl_vec<uint32_t> indexes, size_t operandCount) {
     for (uint32_t i : indexes) {
         if (i >= operandCount) {
index e8afd34..9f28d61 100644 (file)
@@ -145,9 +145,9 @@ inline bool validCode(uint32_t codeCount, uint32_t codeCountOEM, uint32_t code)
 }
 
 int validateOperandType(const ANeuralNetworksOperandType& type, const char* tag, bool allowPartial);
-#if 0 // REF-ANN
 int validateOperandList(uint32_t count, const uint32_t* list, uint32_t operandCount,
                         const char* tag);
+#if 0 // REF-ANN
 bool validateModel(const Model& model);
 bool validateRequest(const Request& request, const Model& model);
 #endif // REF-ANN
index f8383b5..11782d6 100644 (file)
@@ -182,9 +182,6 @@ int ModelBuilder::setOperandValueFromMemory(uint32_t index, const Memory* memory
 int ModelBuilder::addOperation(ANeuralNetworksOperationType type, uint32_t inputCount,
                                const uint32_t* inputs, uint32_t outputCount,
                                const uint32_t* outputs) {
-    // Dummy Implementation
-    return 0;
-#if 0
     if (mCompletedModel) {
         LOG(ERROR) << "ANeuralNetworksModel_addOperation can't modify after model finished";
         return ANEURALNETWORKS_BAD_DATA;
@@ -220,7 +217,6 @@ int ModelBuilder::addOperation(ANeuralNetworksOperationType type, uint32_t input
         // TODO mOperands[i].consumers.push_back(operationIndex);
     }
     return ANEURALNETWORKS_NO_ERROR;
-#endif
 }
 
 int ModelBuilder::identifyInputsAndOutputs(uint32_t inputCount, const uint32_t* inputs,
index 6c6490d..f2c2a5d 100644 (file)
@@ -327,18 +327,12 @@ int ANeuralNetworksModel_addOperation(ANeuralNetworksModel* model,
                                       ANeuralNetworksOperationType type, uint32_t inputCount,
                                       const uint32_t* inputs, uint32_t outputCount,
                                       const uint32_t* outputs) {
-    // Dummy Implementation
-    return ANEURALNETWORKS_NO_ERROR;
-
-    // Original code for reference
-#if 0
     if (!model || !inputs || !outputs) {
         LOG(ERROR) << "ANeuralNetworksModel_addOperation passed a nullptr";
         return ANEURALNETWORKS_UNEXPECTED_NULL;
     }
     ModelBuilder* m = reinterpret_cast<ModelBuilder*>(model);
     return m->addOperation(type, inputCount, inputs, outputCount, outputs);
-#endif
 }
 
 int ANeuralNetworksModel_identifyInputsAndOutputs(ANeuralNetworksModel* model, uint32_t inputCount,