diff --git a/Projects/Superalgos/UI/Function-Libraries/LearningSessionFunctions.js b/Projects/Superalgos/UI/Function-Libraries/LearningSessionFunctions.js index 9d1e4d324..e86f6f658 100644 --- a/Projects/Superalgos/UI/Function-Libraries/LearningSessionFunctions.js +++ b/Projects/Superalgos/UI/Function-Libraries/LearningSessionFunctions.js @@ -76,9 +76,9 @@ function newSuperalgosFunctionLibraryLearningSessionFunctions() { 'Conv 1D Layer->Conv 2D Layer->Conv 2D Transpose Layer->Conv 3D Layer->Cropping 2D Layer->Depthwise Convo 2D Layer->Separable Convo 2D Layer->Up Sampling 2D Layer->' + 'Activation Layer->Dense Layer->Dropout Layer->Embedding Layer->Flatten Layer->Permutable Layer->Rrepeat Vector Layer->Reshape Layer->Spatial Dropout 1D Layer->' + 'Elu Layer->Leaky Relu Layer->Prelu Layer->Relu Layer->Softmax Layer->Thresholded Relu Layer->'+ - 'Dimensionality Units->Activation Functions->Batch Size->Dtype->Trainable->Weights->Tensor->Kernel->Bias->' + - 'Kernel Initializer->Kernel Contraint->Kernel Regularizer->' + - 'Bias Initializer->Bias Contraint->Bias Regularizer->' + 'Dimensionality Units->Activation Function->Batch Size->Dtype->Trainable->Weights->Tensor->Kernel->Bias->' + + 'Kernel Initializer->Kernel Constraint->Kernel Regularizer->' + + 'Bias Initializer->Bias Constraint->Bias Regularizer->' let learningSystem = UI.projects.superalgos.functionLibraries.protocolNode.getProtocolNode(node.learningSystemReference.payload.referenceParent, false, true, true, false, false, lightingPath) diff --git a/Projects/Superalgos/UI/Spaces/Floating-Space/UiObject.js b/Projects/Superalgos/UI/Spaces/Floating-Space/UiObject.js index 4ae54d0b7..cd9b6f6be 100644 --- a/Projects/Superalgos/UI/Spaces/Floating-Space/UiObject.js +++ b/Projects/Superalgos/UI/Spaces/Floating-Space/UiObject.js @@ -1197,7 +1197,7 @@ function newUiObject() { answer to the command to stop. In those cases, we will stop execute the onStopped funcion anyways so as to return the UI to its default state. */ - setTimeout(returnToDefaultState, 90000) + setTimeout(returnToDefaultState, 15000) function returnToDefaultState() { if (wasStopped === false) { completeStop(callBackFunction, event) diff --git a/Projects/TensorFlow/Schemas/AppSchema.json b/Projects/TensorFlow/Schemas/AppSchema.json index 0a4867c45..f55aed33f 100644 --- a/Projects/TensorFlow/Schemas/AppSchema.json +++ b/Projects/TensorFlow/Schemas/AppSchema.json @@ -978,6 +978,13 @@ { "type": "Dense Layer", "menuItems": [ + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", + "actionFunction": "uiObject.configEditor.activate" + }, { "action": "Add UI Object", "disableIfPropertyIsDefined": true, @@ -1052,6 +1059,12 @@ "actionFunction": "payload.executeAction" } ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{ \n \"codeName\": \"\"\n}" + }, "addLeftIcons": true, "level": 3, "attachingRules": { diff --git a/Projects/TensorFlow/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/TensorFlowLibrary.js b/Projects/TensorFlow/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/TensorFlowLibrary.js index 0d7459002..317d9d25b 100644 --- a/Projects/TensorFlow/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/TensorFlowLibrary.js +++ b/Projects/TensorFlow/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/TensorFlowLibrary.js @@ -98,16 +98,16 @@ exports.newTensorFlowBotModulesTensorFlowLibrary = function (processIndex) { learningSystem.machineLearningLibrary.typeOfLearning !== undefined && learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel !== undefined && learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.model !== undefined && - learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.api !== undefined + learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.model.api !== undefined ) { - switch (learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.api.type) { + switch (learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.model.api.type) { case 'Layers API': { tensorFlowAPI = require("@tensorflow/tfjs-layers") - if (learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.api.layersModel === undefined) { return } + if (learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.model.api.layersModel === undefined) { return } - switch (learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.api.layersModel.type) { + switch (learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.model.api.layersModel.type) { case 'Secuential Model': { - setupSecuentialModel(learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.api.layersModel) + setupSecuentialModel(learningSystem.machineLearningLibrary.typeOfLearning.typeOfModel.model.api.layersModel) break } case 'Functional Model': { @@ -144,7 +144,7 @@ exports.newTensorFlowBotModulesTensorFlowLibrary = function (processIndex) { return } - tensorFlowModel = tensorFlowAPI.sequetial() + tensorFlowModel = tensorFlowAPI.sequential() for (let i = 0; i < secuentialModel.layers.length; i++) { let layerNode = secuentialModel.layers[i] @@ -152,10 +152,10 @@ exports.newTensorFlowBotModulesTensorFlowLibrary = function (processIndex) { let argsObject = {} let layerObject - if (layerNode.layerType === undefined) { continue } - if (layerNode.layerType.layer === undefined) { continue } + if (layerNode.typeOfLayer === undefined) { continue } + if (layerNode.typeOfLayer.layer === undefined) { continue } - switch (layerNode.layerType.layer.type) { + switch (layerNode.typeOfLayer.layer.type) { case 'Dense Layer': { layersFunction = tensorFlowAPI.layers.dense break @@ -166,54 +166,59 @@ exports.newTensorFlowBotModulesTensorFlowLibrary = function (processIndex) { case ' ': { break } + default: { + TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, + '[WARN] Layer of type ' + layerNode.typeOfLayer.layer.type + ' not implemented yet.') + continue + } } - if (layerNode.layerType.layer.dimensionalityUnits !== undefined) { - argsObject.units = layerNode.layerType.layer.dimensionalityUnits.config.value + if (layerNode.typeOfLayer.layer.dimensionalityUnits !== undefined) { + argsObject.units = layerNode.typeOfLayer.layer.dimensionalityUnits.config.value } - if (layerNode.layerType.layer.activationFunction !== undefined) { - argsObject.activation = layerNode.layerType.layer.activationFunction.config.value + if (layerNode.typeOfLayer.layer.activationFunction !== undefined) { + argsObject.activation = layerNode.typeOfLayer.layer.activationFunction.config.value } - if (layerNode.layerType.layer.bias !== undefined) { + if (layerNode.typeOfLayer.layer.bias !== undefined) { argsObject.useBias = true } - if (layerNode.layerType.layer.kernel !== undefined) { - if (layerNode.layerType.layer.kernel.initializer !== undefined) { - argsObject.kernelInitializer = layerNode.layerType.layer.kernel.initializer.config.value + if (layerNode.typeOfLayer.layer.kernel !== undefined) { + if (layerNode.typeOfLayer.layer.kernel.kernelInitializer !== undefined) { + argsObject.kernelInitializer = layerNode.typeOfLayer.layer.kernel.kernelInitializer.config.value } - if (layerNode.layerType.layer.kernel.constraint !== undefined) { - argsObject.kernelConstraint = layerNode.layerType.layer.kernel.constraint.config.value + if (layerNode.typeOfLayer.layer.kernel.kernelConstraint !== undefined) { + argsObject.kernelConstraint = layerNode.typeOfLayer.layer.kernel.kernelConstraint.config.value } - if (layerNode.layerType.layer.kernel.regularizer !== undefined) { - argsObject.kernelRegularizer = layerNode.layerType.layer.kernel.regularizer.config.value + if (layerNode.typeOfLayer.layer.kernel.kernelRegularizer !== undefined) { + argsObject.kernelRegularizer = layerNode.typeOfLayer.layer.kernel.kernelRegularizer.config.value } } - if (layerNode.layerType.layer.bias !== undefined) { - if (layerNode.layerType.layer.bias.initializer !== undefined) { - argsObject.biasInitializer = layerNode.layerType.layer.bias.initializer.config.value + if (layerNode.typeOfLayer.layer.bias !== undefined) { + if (layerNode.typeOfLayer.layer.bias.biasInitializer !== undefined) { + argsObject.biasInitializer = layerNode.typeOfLayer.layer.bias.biasInitializer.config.value } - if (layerNode.layerType.layer.bias.constraint !== undefined) { - argsObject.biasConstraint = layerNode.layerType.layer.bias.constraint.config.value + if (layerNode.typeOfLayer.layer.bias.biasConstraint !== undefined) { + argsObject.biasConstraint = layerNode.typeOfLayer.layer.bias.biasConstraint.config.value } - if (layerNode.layerType.layer.bias.regularizer !== undefined) { - argsObject.biasRegularizer = layerNode.layerType.layer.bias.regularizer.config.value + if (layerNode.typeOfLayer.layer.bias.biasRegularizer !== undefined) { + argsObject.biasRegularizer = layerNode.typeOfLayer.layer.bias.biasRegularizer.config.value } } - if (layerNode.layerType.layer.batchSize !== undefined) { - argsObject.batchSize = layerNode.layerType.layer.batchSize.config.value + if (layerNode.typeOfLayer.layer.batchSize !== undefined) { + argsObject.batchSize = layerNode.typeOfLayer.layer.batchSize.config.value } - if (layerNode.layerType.layer.dtype !== undefined) { - argsObject.dtype = layerNode.layerType.layer.dtype.config.value + if (layerNode.typeOfLayer.layer.dtype !== undefined) { + argsObject.dtype = layerNode.typeOfLayer.layer.dtype.config.value } - if (layerNode.layerType.layer.trainable !== undefined) { - argsObject.trainable = layerNode.layerType.layer.trainable.config.value + if (layerNode.typeOfLayer.layer.trainable !== undefined) { + argsObject.trainable = layerNode.typeOfLayer.layer.trainable.config.value } - if (layerNode.layerType.layer.weights !== undefined) { - if (layerNode.layerType.layer.weights.tensor !== undefined) { - argsObject.weights = layerNode.layerType.layer.weights.tensor.config.value + if (layerNode.typeOfLayer.layer.weights !== undefined) { + if (layerNode.typeOfLayer.layer.weights.tensor !== undefined) { + argsObject.weights = layerNode.typeOfLayer.layer.weights.tensor.config.value } } - argsObject.name = layerNode.layerType.layer.name + argsObject.name = layerNode.typeOfLayer.layer.config.codeName /* Check if this is the input layer. @@ -224,8 +229,6 @@ exports.newTensorFlowBotModulesTensorFlowLibrary = function (processIndex) { } } - secuentialModel.inputLayer - layerObject = layersFunction(argsObject) tensorFlowModel.add(layerObject)