"New Neural" es un proyecto de motor de red neuronal de código abierto para la plataforma MetaTrader 5. - página 73

 
yu-sha:

El preprocesador sirve precisamente para esto

Tanto si tienes 2 como 100 neuronas, el archivo tiene el mismo aspecto.

Bueno, nadie te impide hacerlo gráficamente: sólo tienes que escribir una GUI y usarla.

Bueno, no cortemos el hombro, pongámoslo en líneas claras. No es un hecho que sea igual para los demás, pero para mí la forma de carga que expuse arriba es evidente en cuanto a algoritmo de carga:

leer una cadena, inicializar 3 objetos de tipo capa,

leemos la primera línea, luego llamamos al primer objeto de capa, construimos la entrada de tipo de capa, inicializamos el array de 2 neuronas.

leer la segunda línea, luego llamar a la segunda capa de objetos, construir el tipo de capa mlp, inicializar la matriz de 2 neuronas.

lee la tercera línea, luego llama al segundo objeto de capa, construye el tipo de capa mlp, inicializa el array de neuronas de 1.

Como el número de capas es 3, terminamos la construcción en la tercera línea y asignamos las conexiones.

Para ello, recorremos la tabla y llamamos a las neuronas necesarias, indicándoles los enlaces si la tabla contiene 1.

¿Y cómo funcionaría el algoritmo en xml?

ZS y la principal ventaja es que como la tabla de conexiones es binaria, es perfectamente enlazable. La tabla para 8 neuronas cabe en un ulong. Es cierto que cuanto más se adentra en el bosque más gruesos son los partisanos en general, el tamaño con un gran número de neuronas se calcula como

X=N*N/8

donde N es el número de neuronas,

X es el número de bytes.

 

Desventajas

  • La sintaxis XML es redundante.[8]
  • El tamaño de un documento XML es significativamente mayor que una representación binaria de los mismos datos. En estimaciones aproximadas, el valor de este factor se toma como un orden de magnitud (por un factor de 10).
  • El tamaño de un documento XML es significativamente mayor que el de un documento en formatos alternativos de transferencia de datos basados en texto (por ejemplo,JSON[4],YAML,Protocol Buffers) y especialmente en formatos de datos optimizados para un caso de uso particular.
  • La redundancia de XML puede afectar a la eficacia de una aplicación. El coste de almacenar, procesar y transferir datos aumenta.
  • XML contiene metadatos (sobre nombres de campos, nombres de clases, anidamiento de estructuras), y al mismo tiempo XML se posiciona como un lenguaje de comunicación de sistemas abiertos. Cuando se transfiere un gran número de objetos del mismo tipo (la misma estructura) entre sistemas, no tiene sentido transferir los metadatos repetidamente, aunque estén contenidos en cada instancia de la descripción XML.
  • Para un gran número de tareas no se necesita toda la potencia de la sintaxis XML y se pueden utilizar soluciones mucho más sencillas y eficaces.

Disculpas por el plagio.
 

Propongo XML como estándar para almacenar configuraciones, redes, ajustes, ...

Y sólo es necesario en las fases de inicialización/almacenamiento

En el proceso de flujo de trabajo, y más aún en el proceso de aprendizaje, no se puede hablar de XML

su.humano:
Disculpas por el plagio.

Sí, pero por alguna razón monstruos como Oracle, Microsoft, ... Apretar los dientes para dejar de lado sus estándares "binarios" (normalmente comerciales) y pasarse a los estándares abiertos

Restar 10 MBytes de XML no es un problema para los ordenadores modernos

Un documento MS Word .docx de 100 MBytes no es intimidante?

Si el problema es la descarga de una red desde un archivo XML, el entrenamiento en dicho hardware es sencillamente irrealizable: las tareas son incomparables en complejidad

 
yu-sha:

Propongo XML como estándar para almacenar configuraciones, redes, ajustes, ...

Y sólo es necesario en las fases de inicialización/almacenamiento

En el proceso de flujo de trabajo y más aún en la fase de aprendizaje, no se trata de XML

Considere lo siguiente: su archivo en xml es de 916 bytes y en representación binaria, de 64 bytes, incluso si no hace clic en la cabecera.

7 variables de cabecera + 1 por tabla = 8 ulong * 8 bytes = 64

 
Urain:

Mira, tu archivo xml es de 916 bytes, mientras que la representación binaria es de 64 bytes, incluso si no haces clic en la cabecera.

7 variables de cabecera + 1 por tabla = 8 ulong * 8 bytes = 64


Para abrir esta página del foro, estoy bombeando a través de Internet al menos cien kilobytes.

Estamos en 2012 y hace tiempo que no uso esa unidad de medida como el byte))

P.D.

Yo sólo he sugerido mi versión - el público debe decidir

 
Yu-sha:

Propongo XML como estándar para almacenar configuraciones, redes, ajustes, ...

Y sólo es necesario en las fases de inicialización/almacenamiento

En el proceso de flujo de trabajo, y aún más en el proceso de formación, no se trata de XML.

Para optimizar la estructura de la red, es necesario (sobre la marcha) cambiar el número de neuronas y conexiones.

¿Es posible hacerlo?

Si no te importa, por favor, comenta tus códigos, ya que puede llevar mucho tiempo entender el código de otra persona sin ningún comentario. Gracias.

 
her.human:

Para optimizar la estructura de la red es necesario (sobre la marcha) cambiar el número de neuronas y conexiones.

¿Es posible hacerlo?

Si no es difícil, por favor, comenta tus códigos, ya sabes, se tarda mucho en entender los códigos de otras personas sin comentarios. Gracias.

Se trata de una cuestión de formación. Potencialmente, es posible, pero no lo he utilizado en la práctica.

Normalmente, en el proceso de aprendizaje, la estructura de la red no cambia, sólo se modifican los parámetros de adaptación.

Su definición del problema ya es un metanivel, entrenar a un arquitecto para que cambie la estructura de la red, de manera que la red resultante tenga más éxito en el aprendizaje que otras

Códigos publicados "tal cual" - hechos para mí y, como siempre, con prisa, así que disculpen

En el buen sentido, todo lo que hay debe ser reconstruido por los huesos después de que todo el proyecto será trabajado

 
yu-sha:

Descargo al menos cien kilobytes para abrir esta página del foro.

Estamos en 2012 y hace tiempo que no uso esa unidad de medida como el byte))

P.D.

Yo sólo he ofrecido mi versión, es el público quien debe decidir.

Hagamos un experimento, crea un cargador xml para 1000 neuronas con 100 enlaces por neurona, y publica el tamaño del archivo, estructura lo que quieras.

Yo puedo calcular de rodillas cuánto espacio ocupa mi variante 1000*1000/8=~125KB, y la tuya no, así que no puedo comparar...

Si su versión tiene unas dimensiones aceptables, por qué no.

 
Urain:

No es el punto, la memoria, y en la GPU será difícil de implementar los giros de la lógica de los objetos, tengo una idea bastante buena de cómo implementar el NS, como una compleja interacción de los objetos dentro de los cuales hay funciones de los cálculos de la GPU (esto es sobre el nivel micro), pero no puedo imaginar cómo este complejo código de objeto de los NS conjunto para deslizar la GPU como varios FF con diferentes conjuntos de pesos (nivel macro) ?

La pregunta es retórica, aunque si alguien la presenta, no me importaría escucharla.

Por eso se optó por CUDA en lugar de la más común OpenCL

El código CUDA está orientado a objetos y se puede pasar por bits un objeto generado en la CPU

Hay algunas sutilezas, pero todas se pueden resolver

 
yu-sha:

Por eso se eligió CUDA en lugar de la más común OpenCL

El código en CUDA está orientado a objetos y se puede pasar por bits el objeto formado en la CPU

Hay sutilezas, pero todas ellas se pueden resolver

No soy experto en esto, te creo, sería bueno.