📄 mlppanel.java
字号:
/* * $RCSfile: MLPPanel.java,v $ * $Revision: 1.7 $ * $Date: 2005/05/09 15:59:31 $ * * NeuralNetworkToolkit * Copyright (C) 2004 Universidade de Brasília * * This file is part of NeuralNetworkToolkit. * * NeuralNetworkToolkit is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * NeuralNetworkToolkit is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with NeuralNetworkToolkit; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 - USA. */package neuralnetworktoolkit.gui.options.architecture;import java.awt.*;import java.awt.event.*;import java.util.*;import javax.swing.*;import javax.swing.border.*;import neuralnetworktoolkit.architectures.ArchitectureParameters;import neuralnetworktoolkit.architectures.mlp.MLPParameters;/** * */public class MLPPanel extends ArchitecturePanel { private static final String ACTIVATION_FUNCTION = "activationFunction"; private static final String NEURONS = "neurons"; private static final String INTERNAL_LAYERS = "internalLayers"; private static final String OUTPUT_LAYER = "outputLayer"; private JLabel activationFunctionLabel; private JLabel neuronsLabel; private JList internalLayersList; private JComboBox internalLayersActivationFunctionCombo; private JComboBox outputLayerActivationFunctionCombo; private JComboBox initializationCombo; private JSpinner internalLayersNeuronsSpinner; private JSpinner outputLayerNeuronsSpinner; private SpinnerNumberModel internalLayersNeuronsSpinnerModel; private SpinnerNumberModel outputLayerNeuronsSpinnerModel; private JButton addLayerButton; private JButton removeLayerButton; private JScrollPane internalLayersListScroll; private JPanel internalLayersPanel; private JPanel internalLayersListPanel; private JToolBar internalLayersListButtonsBar; private JPanel internalLayersActivationFunctionPanel; private JPanel internalLayersNeuronsPanel; private JPanel internalLayersOptionsPanel; private JPanel outputLayerPanel; private JPanel outputLayerActivationFunctionPanel; private JPanel outputLayerNeuronsPanel; private JPanel initializationPanel; private Insets borderInsets; private String[] activationFunctions = {"Exp", "Logistic", "Sin", "Step", "Tanh", "X", "Xcube", "Xsquare"}; private String[] activationFunctionsNames; private String[] initialization = { "NguyenWidrow", "RandomicInitialization" }; private String[] initializationNames; private Vector internalLayersActivationFunctions; private Vector internalLayersNeurons; private String outputLayerActivationFunction; private int outputLayerNeurons; private ResourceBundle resource; private ResourceBundle iconsResource; /** * * */ public MLPPanel() { resource = ResourceBundle .getBundle("neuralnetworktoolkit.gui.options.architecture.resources.MLPPanelResource"); iconsResource = ResourceBundle .getBundle("neuralnetworktoolkit.gui.resources.IconsResource"); activationFunctionsNames = new String[activationFunctions.length]; activationFunctionsNames[0] = resource.getString("exp"); activationFunctionsNames[1] = resource.getString("logistic"); activationFunctionsNames[2] = resource.getString("sin"); activationFunctionsNames[3] = resource.getString("step"); activationFunctionsNames[4] = resource.getString("tanh"); activationFunctionsNames[5] = resource.getString("x"); activationFunctionsNames[6] = resource.getString("xcube"); activationFunctionsNames[7] = resource.getString("xsquare"); internalLayersActivationFunctions = new Vector(); internalLayersNeurons = new Vector(); borderInsets = new Insets(5, 5, 5, 5); // Internal layers panel setup internalLayersList = new JList(); internalLayersList .setSelectionMode(ListSelectionModel.SINGLE_SELECTION); internalLayersListScroll = new JScrollPane(internalLayersList); internalLayersListScroll.setBorder(new EmptyBorder(2, 2, 2, 2)); addLayerButton = new JButton(); addLayerButton.setIcon((ImageIcon) iconsResource .getObject("stock_add24")); addLayerButton.setToolTipText(resource .getString("addLayerButtonToolTip")); addLayerButton.addActionListener(new AddLayerButtonActionListener()); addLayerButton.setEnabled(false); removeLayerButton = new JButton(); removeLayerButton.setIcon((ImageIcon) iconsResource .getObject("stock_remove24")); removeLayerButton.setToolTipText(resource .getString("removeLayerButtonToolTip")); removeLayerButton .addActionListener(new RemoveLayerButtonActionListener()); internalLayersListButtonsBar = new JToolBar(); internalLayersListButtonsBar.add(addLayerButton); internalLayersListButtonsBar.add(removeLayerButton); internalLayersListButtonsBar.setOrientation(JToolBar.VERTICAL); internalLayersListButtonsBar.setBorder(new EmptyBorder(2, 2, 2, 2)); internalLayersListPanel = new JPanel(); internalLayersListPanel.setLayout(new BorderLayout()); internalLayersListPanel.add(internalLayersListScroll, BorderLayout.CENTER); internalLayersListPanel.add(internalLayersListButtonsBar, BorderLayout.EAST); internalLayersListPanel.setBorder(new EmptyBorder(borderInsets)); activationFunctionLabel = new JLabel(resource .getString(ACTIVATION_FUNCTION)); internalLayersActivationFunctionCombo = new JComboBox( activationFunctionsNames); internalLayersActivationFunctionCombo.setEditable(false); internalLayersActivationFunctionCombo.setSelectedIndex(-1); internalLayersActivationFunctionCombo .addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { addLayerButton.setEnabled(true); } }); internalLayersActivationFunctionPanel = new JPanel(); internalLayersActivationFunctionPanel.setLayout(new BorderLayout()); internalLayersActivationFunctionPanel.add(activationFunctionLabel, BorderLayout.NORTH); internalLayersActivationFunctionPanel.add( internalLayersActivationFunctionCombo, BorderLayout.CENTER); internalLayersActivationFunctionPanel.setBorder(new EmptyBorder( borderInsets)); neuronsLabel = new JLabel(resource.getString(NEURONS)); internalLayersNeuronsSpinnerModel = new SpinnerNumberModel(1, 1, Integer.MAX_VALUE, 1); internalLayersNeuronsSpinner = new JSpinner(); internalLayersNeuronsSpinner .setModel(internalLayersNeuronsSpinnerModel); internalLayersNeuronsPanel = new JPanel(); internalLayersNeuronsPanel.setLayout(new BorderLayout()); internalLayersNeuronsPanel.add(neuronsLabel, BorderLayout.NORTH); internalLayersNeuronsPanel.add(internalLayersNeuronsSpinner, BorderLayout.CENTER); internalLayersNeuronsPanel.setBorder(new EmptyBorder(borderInsets)); internalLayersOptionsPanel = new JPanel(); internalLayersOptionsPanel.setLayout(new GridBagLayout()); internalLayersOptionsPanel.add(internalLayersActivationFunctionPanel, new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.VERTICAL, borderInsets, 67, 0)); internalLayersOptionsPanel.add(internalLayersNeuronsPanel, new GridBagConstraints(1, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.VERTICAL, borderInsets, 67, 0)); internalLayersPanel = new JPanel(); internalLayersPanel.setLayout(new BorderLayout()); internalLayersPanel.add(internalLayersOptionsPanel, BorderLayout.NORTH); internalLayersPanel.add(internalLayersListPanel, BorderLayout.CENTER); internalLayersPanel.setBorder(new TitledBorder(resource .getString(INTERNAL_LAYERS))); // Output layer panel setup activationFunctionLabel = new JLabel(resource .getString(ACTIVATION_FUNCTION)); outputLayerActivationFunctionCombo = new JComboBox( activationFunctionsNames); outputLayerActivationFunctionCombo.setEditable(false); outputLayerActivationFunctionPanel = new JPanel(); outputLayerActivationFunctionPanel.setLayout(new BorderLayout()); outputLayerActivationFunctionPanel.add(activationFunctionLabel, BorderLayout.NORTH); outputLayerActivationFunctionPanel.add( outputLayerActivationFunctionCombo, BorderLayout.CENTER); outputLayerActivationFunctionPanel.setBorder(new EmptyBorder( borderInsets)); neuronsLabel = new JLabel(resource.getString(NEURONS)); outputLayerNeuronsSpinner = new JSpinner(); outputLayerNeuronsSpinnerModel = new SpinnerNumberModel(1, 1, Integer.MAX_VALUE, 1); outputLayerNeuronsSpinner.setModel(outputLayerNeuronsSpinnerModel); outputLayerNeuronsSpinner.setEnabled(false); outputLayerNeuronsPanel = new JPanel(); outputLayerNeuronsPanel.setLayout(new BorderLayout()); outputLayerNeuronsPanel.add(neuronsLabel, BorderLayout.NORTH); outputLayerNeuronsPanel.add(outputLayerNeuronsSpinner, BorderLayout.CENTER); outputLayerNeuronsPanel.setBorder(new EmptyBorder(borderInsets)); outputLayerPanel = new JPanel(); outputLayerPanel.setLayout(new GridBagLayout()); outputLayerPanel.add(outputLayerActivationFunctionPanel, new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.VERTICAL, borderInsets, 67, 0)); outputLayerPanel.add(outputLayerNeuronsPanel, new GridBagConstraints(1, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.VERTICAL, borderInsets, 67, 0)); outputLayerPanel.setBorder(new TitledBorder(resource .getString(OUTPUT_LAYER))); // Weight initialization panel setup initializationNames = new String[initialization.length];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -