230 lines
7.9 KiB
JavaScript
230 lines
7.9 KiB
JavaScript
import * as Blockly from 'blockly/core';
|
|
|
|
const TENSORFLOW_HUE = '#1216ab';
|
|
|
|
Blockly.Blocks.tensorflow_init_tensor = {
|
|
init: function () {
|
|
this.appendValueInput("VAR")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_INIT_TENSOR);
|
|
this.setOutput(true, null);
|
|
this.setColour(TENSORFLOW_HUE);
|
|
this.setTooltip('');
|
|
this.setHelpUrl('');
|
|
}
|
|
};
|
|
|
|
Blockly.Blocks.tensorflow_sequential = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_SEQUENTIAL);
|
|
this.setOutput(true, null);
|
|
this.setColour(TENSORFLOW_HUE);
|
|
this.setTooltip('');
|
|
this.setHelpUrl('');
|
|
}
|
|
};
|
|
|
|
Blockly.Blocks.tensorflow_layers_dense = {
|
|
init: function () {
|
|
this.appendDummyInput()
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_INIT_LAYERS_DENSE_LAYER);
|
|
this.appendValueInput("VAR1")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.ALIGN_RIGHT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_OUTPUT_DIMENSION);
|
|
this.appendValueInput("VAR2")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.ALIGN_RIGHT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_INPUT_SHAPE);
|
|
this.setOutput(true, null);
|
|
this.setColour(TENSORFLOW_HUE);
|
|
this.setTooltip('');
|
|
this.setHelpUrl('');
|
|
}
|
|
};
|
|
|
|
Blockly.Blocks.tensorflow_add = {
|
|
init: function () {
|
|
this.appendValueInput("VAR1")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_MODEL);
|
|
this.appendValueInput("VAR2")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_ADD_LAYER);
|
|
this.setInputsInline(true);
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setColour(TENSORFLOW_HUE);
|
|
this.setTooltip('');
|
|
this.setHelpUrl('');
|
|
}
|
|
};
|
|
|
|
Blockly.Blocks.tensorflow_compile = {
|
|
init: function () {
|
|
this.appendValueInput("VAR1")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_COMPILE_MODEL);
|
|
this.appendDummyInput()
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_LOSS_FUNCTION_TYPE)
|
|
.appendField(new Blockly.FieldDropdown([
|
|
[Blockly.Msg.MIXLY_TENSORFLOW_MEAN_SQUARED_ERROR, "meanSquaredError"]
|
|
]), "VAR2");
|
|
this.appendDummyInput()
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_OPTIMIZER)
|
|
.appendField(new Blockly.FieldDropdown([
|
|
[Blockly.Msg.MIXLY_TENSORFLOW_SGD, "sgd"]
|
|
]), "VAR3");
|
|
this.setInputsInline(true);
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setColour(TENSORFLOW_HUE);
|
|
this.setTooltip('');
|
|
this.setHelpUrl('');
|
|
}
|
|
};
|
|
|
|
Blockly.Blocks.tensorflow_fit = {
|
|
init: function () {
|
|
this.appendValueInput("VAR1")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_FIT_MODEL);
|
|
this.appendValueInput("VAR2")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.ALIGN_RIGHT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_FIT_INPUT_DATA);
|
|
this.appendValueInput("VAR3")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.ALIGN_RIGHT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_FIT_TARGET_DATA);
|
|
this.appendValueInput("VAR4")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.ALIGN_RIGHT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_FIT_EPOCHS);
|
|
this.appendValueInput("VAR5")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.ALIGN_RIGHT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_FIT_VERBOSE);
|
|
this.appendDummyInput()
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_FIT_RETURN_HISTORY);
|
|
this.setInputsInline(false);
|
|
this.setOutput(true, null);
|
|
this.setColour(TENSORFLOW_HUE);
|
|
this.setTooltip('');
|
|
this.setHelpUrl('');
|
|
}
|
|
};
|
|
|
|
Blockly.Blocks.tensorflow_get_loss = {
|
|
init: function () {
|
|
this.appendValueInput("VAR")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_GET_LOSS_FROM_HISTORY);
|
|
this.appendDummyInput()
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_GET_LOSS_FROM_HISTORY_2);
|
|
this.setOutput(true, null);
|
|
this.setColour(TENSORFLOW_HUE);
|
|
this.setTooltip('');
|
|
this.setHelpUrl('');
|
|
}
|
|
};
|
|
|
|
Blockly.Blocks.tensorflow_predict = {
|
|
init: function () {
|
|
this.appendValueInput("VAR1")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_PREDICT);
|
|
this.appendValueInput("VAR2")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.ALIGN_RIGHT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_PREDICT_INPUT_DATA);
|
|
this.appendDummyInput()
|
|
.setAlign(Blockly.ALIGN_RIGHT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_PREDICT_RETURN_RESULT);
|
|
this.setInputsInline(false);
|
|
this.setOutput(true, null);
|
|
this.setColour(TENSORFLOW_HUE);
|
|
this.setTooltip('');
|
|
this.setHelpUrl('');
|
|
}
|
|
};
|
|
|
|
Blockly.Blocks.tensorflow_get_tensor_data = {
|
|
init: function () {
|
|
this.appendValueInput("VAR")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_GET_TENSOR_DATA);
|
|
this.setOutput(true, null);
|
|
this.setColour(TENSORFLOW_HUE);
|
|
this.setTooltip('');
|
|
this.setHelpUrl('');
|
|
}
|
|
};
|
|
|
|
Blockly.Blocks.tensorflow_save_or_export_model = {
|
|
init: function () {
|
|
this.appendValueInput("NAME1")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_MODEL);
|
|
this.appendValueInput("NAME2")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(new Blockly.FieldDropdown([
|
|
[Blockly.Msg.MIXLY_TENSORFLOW_SAVE_MODEL, "save"],
|
|
[Blockly.Msg.MIXLY_TENSORFLOW_EXPORT_MODEL, "export"]
|
|
]), "NAME")
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_SAVE_MODEL_NAME);
|
|
this.setInputsInline(true);
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setColour(TENSORFLOW_HUE);
|
|
this.setTooltip('');
|
|
this.setHelpUrl('');
|
|
}
|
|
};
|
|
|
|
Blockly.Blocks.tensorflow_use_load_model = {
|
|
init: function () {
|
|
this.appendValueInput("NAME")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_LOAD_MODEL)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_MODEL_NAME);
|
|
this.setInputsInline(true);
|
|
this.setOutput(true, null);
|
|
this.setColour(TENSORFLOW_HUE);
|
|
this.setTooltip('');
|
|
this.setHelpUrl('');
|
|
}
|
|
};
|
|
|
|
Blockly.Blocks.tensorflow_prepare_picture = {
|
|
init: function () {
|
|
this.appendValueInput("NAME")
|
|
.setCheck(null)
|
|
.setAlign(Blockly.ALIGN_LEFT)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_PREPARE_PICTURE_TO_TENSOR)
|
|
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_PREPARE_PICTURE_READ_PICTURE);
|
|
this.setInputsInline(true);
|
|
this.setOutput(true, null);
|
|
this.setColour(TENSORFLOW_HUE);
|
|
this.setTooltip('');
|
|
this.setHelpUrl('');
|
|
}
|
|
}; |