Contenido principal

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

mpnetLayers

Crear redes de planificación de movimiento personalizadas

Desde R2024a

Descripción

layers = mpnetLayers(numInputs,numOutputs) crea capas para redes de planificación de movimiento (MPNet) con un número específico de entradas y salidas.

La capa de red predeterminada consta de una capa de entrada, cuatro capas ocultas y una capa de salida completamente conectada. Las dos primeras capas ocultas contienen una capa completamente conectada, una capa ReLU y una capa de abandono. Las dos últimas capas ocultas contienen una capa completamente conectada y una capa ReLU. Para obtener más información sobre MPNet, consulte Comience con las redes de planificación de movimiento.

ejemplo

layers = mpnetLayers(numInputs,numOutputs,Name=Value) especifica opciones para modificar capas ocultas y capas abandonadas en la red usando uno o más argumentos de nombre y valor.

Nota

Para ejecutar esta función, necesitará Deep Learning Toolbox™.

ejemplo

Ejemplos

contraer todo

Cargue los datos de entrenamiento en el espacio de trabajo MATLAB ®.

load("mazeMapDatasetSmall.mat","dataset")

Los datos de entrenamiento constan de muestras de estado óptimo calculadas para múltiples valores aleatorios de poses iniciales y poses de destino en un mapa de laberinto. Extraer un mapa de los datos de entrenamiento.

trainData = dataset;
map = trainData(1,1).Map;

Obtener los límites de estado del mapa de entrada.

x = map.XWorldLimits;
y = map.YWorldLimits;
theta = [-pi pi];
stateBounds = [x; y; theta];

Cree una red de planificación de movimiento (MPNet) personalizada con dos capas ocultas y dos capas abandonadas. Establezca el número de entradas en 308 y el número de salidas en 4.

layers = mpnetLayers(308,4,HiddenSizes=[256;128],DropoutProbabilities=[0.2;0.1])
layers = 
  1×8 Layer array with layers:

     1   'input'      Feature Input                308 features
     2   'fc1'        Fully Connected              256 fully connected layer
     3   'relu1'      ReLU                         ReLU
     4   'dropout1'   nav.algs.mpnetDropoutLayer   nav.algs.mpnetDropoutLayer
     5   'fc2'        Fully Connected              128 fully connected layer
     6   'relu2'      ReLU                         ReLU
     7   'dropout2'   nav.algs.mpnetDropoutLayer   nav.algs.mpnetDropoutLayer
     8   'output'     Fully Connected              4 fully connected layer

Cree un objeto mpnetSE2 para almacenar el MPNet personalizado.

  • Establezca el valor de la propiedad EncodingSize en [30 10]. El tamaño de la codificación debe ser igual al número de entradas a la red menos 8.

  • Establezca el valor de la propiedad StateBounds en los límites de estado del mapa de entrada.

  • Establezca el valor de la propiedad LossWeights en [10 10 0].

  • Establezca el valor de la propiedad Network en la matriz de capas que representa el MPNet personalizado.

mpnet = mpnetSE2(EncodingSize=[30 10],StateBounds=stateBounds,LossWeights=[10 10 0],Network=layers)
mpnet = 
  mpnetSE2 with properties:

     StateBounds: [3×2 double]
     LossWeights: [10 10 0]
    EncodingSize: [30 10]
       NumInputs: 308
      NumOutputs: 4
         Network: [1×1 dlnetwork]

Mostrar e inspeccionar la arquitectura de la red. Ahora puede entrenar esta red personalizada utilizando la función trainnet (Deep Learning Toolbox) para el muestreo del espacio de estados o la planificación del movimiento.

analyzeNetwork(mpnet.Network)

Argumentos de entrada

contraer todo

Número de entradas a la red, especificado como un escalar entero positivo.

La cantidad de entradas a la capa de entrada debe ser la suma de la cantidad de variables de espacio de estado que representan el estado inicial y el estado objetivo y el tamaño del entorno codificado. Para un espacio de estados SE(2), el número de variables de estado dadas como entradas a la red es 4 para cada uno de los estados inicial y objetivo. Si el tamaño del entorno codificado es M por N, entonces el número de entradas a la red es (M*N)+8

.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Número de salidas de la red, especificado como un escalar entero positivo. Para el espacio de estados SE(2), el número de salidas de la red debe especificarse como 4.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Argumentos de par nombre-valor

contraer todo

Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de los otros argumentos, pero el orden de los pares no importa.

Ejemplo: mpnetlayers(numInputs,numOutputs,HiddenSizes=[256 128 64])

Tamaño de las capas ocultas en la red, especificado como un vector de números enteros positivos. La longitud del vector determina la cantidad de capas ocultas que se agregarán a la red, mientras que los valores en el vector especifican el tamaño de cada capa oculta.trainnet (Deep Learning Toolbox).

La longitud del vector debe ser mayor o igual a dos. Esto implica que la red debe tener al menos dos capas ocultas.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Probabilidad de descartar elementos de entrada en capas de descartado, especificada como un vector en el rango [0, 1).

La longitud del vector determina la cantidad de capas abandonadas que se agregarán a la red, mientras que los valores en el vector especifican la probabilidad de abandono de cada capa abandonada. El número de capas abandonadas en la red debe ser menor o igual al número de capas ocultas en la red.

Si la red tiene una o dos capas ocultas, se ignora la probabilidad de abandono. Si la red tiene más de N capas, la probabilidad de abandono de las primeras N-2 capas se establece en 0,1, donde N es mayor que 2.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Argumentos de salida

contraer todo

Capas MPNet, devueltas como una matriz de capas. La matriz de capas representa la arquitectura de red de una MPNet para utilizarla en el muestreo del espacio de estados o la planificación del movimiento. Para obtener más información sobre la matriz de capas, consulte Layer (Deep Learning Toolbox).

Historial de versiones

Introducido en R2024a