Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - El Benjo

#1
Neftis
Versión 1.0.4

Hola, buen día a todos. Gracias a todos los que han utilizado Neftis y han enviado sus comentarios y sugerencias. La última actualización de mi framework para redes neuronales artificiales ya puede ser ejecutada sobre linux (sólo ha sido probada en Ubuntu). Pronto estaré subiendo un tutorial sobre como ejecutar una aplicación en Google Colaboratory para sacar provecho de sus GPUs K80 y T4. Esta última versión pueden descargarla directamente en: http://www.es.neftis-ai.com/index.php?page=download

Recuerden que Neftis es gratuito y el proyecto sobrevive gracias a donativos y a las ventas de mis libros y mi trabajo como artista plástico, así que si quieren ayudar al proyecto pueden hacerlo en el enlace que aparece a continuación, donde se detallan las maneras de hacerlo. http://www.es.neftis-ai.com/index.php?page=contribute

Muchas gracias y que tengan un excelente día.
#2
Neftis
Artificial Neural Network Framework


Hola, buen día.
Hacía mucho que no ingresaba a la comunidad porque estaba trabajando en un proyecto muy importante para mí, tanto a nivel personal como profesional. Y hoy es un enorme gusto para mí el poder mostrárselos. Aún queda mucho por hacer, pero es lo suficientemente maduro para ser utilizado sin muchos inconvenientes (espero), pues no he tenido los recursos para probarlo en hardware distinto al de mi propia máquina. Dejo este post aquí porque, aún cuando el proyecto actualmente está hecho para funcionar únicamente en .NET Framework, mi idea es poder adaptarlo a otros lenguajes de programación y otros SOs distintos a Windows. Espero que a más de uno le sea de utilidad, pues ese es el propósito de lo que hacemos nosotros como programadores, crear algo que sea útil.
Neftis, como dice el título del post, es un marco de trabajo para la creación, entrenamiento y ejecución de redes neuronales artificiales. El objetivo de Neftis es proporcionar un entorno de trabajo que sea rápido y fácil de utilizar, pero que al mismo tiempo sea flexible y sencillo de aprender, con reglas bien definidas, una programación intuitiva y objetos concretos para llevar a cabo cada una de las tareas necesarias en cada etapa del desarrollo de un sistema que implemente una o múltiples redes neuronales artificiales.
Con Neftis primero construimos un modelo neuronal en base a una descripción formal de la red neuronal. Ejemplo: Si la red neuronal tiene 3 capas y su respectivo número de neuronas es, 2 neuronas en la capa de entrada, 3 neuronas en la capa oculta y 1 neurona en la capa de salida [2, 3, 1] y conectadas en una estructura Madaline, entonces la creamos de la siguiente manera:

Código (csharp) [Seleccionar]
NeuralNetwork redNeuronal = new NeuralNetwork();
NeuralNetwork redNeuronal.CreateMadaline(new int[] {2, 3, 1);


El siguiente paso es cargar los datos de entrenamiento en una estructura de datos con dos campos, inputs y outputs que son cada uno un arreglo unidimensional de enteros del mismo tamaño que la primera (inputs) y última (outputs) capa de la red neuronal. Después se carga otro conjunto de datos con la misma estructura, que será utilizado por la red neuronal para validar el entrenamiento de la misma.

Código (csharp) [Seleccionar]
public struct STRUCT_InputOutputValuePairs
{
public string Id;
public float[] InputValues;
public float[] OutputValues;
}


Después se definen los parámetros de entrenamiento y se entrena la red neuronal. Los parámetros a definir son los siguientes:

AutoSaveFilestringFile name and path for the auto save file.
BatchSizeInt32Training values evaluated before weights change.
LearningReasonfloatIncrement at which neural network learns.
MaxAgeInt32Max age every generation should reach if the neural network doesn't reach the NetworkErrorMargin value.
MaxGenerationInt32Max generation the training process will reach if the neural network doesn't reach the NetworkErrorMargin value.
NetworkErrorMarginfloatThe error that the neural network must reach before the training process stops.
RandomWeightsboolTells if the weights must be randomized. If the training is continuing with a previous training this should be set to false, otherwise training progress will be erased.
SaveEveryNAgesInt32Interval between every autosave the training process made of the neural network if is > 0.
TestCasesInputsAndOuputsSTRUCT_InputOutputValuePairs[]Data sets to test training progress between ages.
TestOutputMarginfloatMargin at the output neurons value.
TrainingInputsAndOutputsSTRUCT_InputOutputValuePairs[]Training values array.
UseGPUboolUse GPU device for training. If is true and there is no GPU device training wont start.

Una vez que la red neuronal ha sido entrenada se guarda en un archivo de red neuronal.

Código (csharp) [Seleccionar]
// Training.
    NeuralNetworkTrainer trainer = new NeuralNetworkTrainer();
STRUCT_TrainingParameters trainingParameters = new STRUCT_TrainingParameters {
        BatchSize = Convert.ToInt32(Txt_BatchSize.Text),
        TrainingInputsAndOutputs = Inputs,
        LearningReason = learnningReazon,
        MaxAge = maxAges,
        SaveEveryNAges = 0,
        AutoSaveFile = "",
        MaxGeneration = maxGeneration,
        NetworkErrorMargin = 0.01f,
        RandomWeights = true,
        TestCasesInputsAndOuputs = testInputs,
        TestOutputMargin = 0.1f,
        UseGPU = false
    };
// Write the results.
    Neftis.ENUM_StartTrainingResult result = trainer.StartTraining(RedNeuronal, trainingParameters);


En la aplicación que va hacer uso de la red neuronal se carga la estructura de la red neuronal ya entrenada, se establecen los valores de entrada y se procede a evaluar los valores de salida.

En el sitio web pueden ver códigos de ejemplo, incluyendo código generado con una función de Neftis que genera código para Arduino a partir de un modelo entrenado.
Neftis es de uso libre (no código abierto). Y cualquiera puede usarlo, ya sea en un proyecto personal o comercial. Si desean apoyar o contribuir al proyecto, en el sitio web vienen las formas de hacerlo, también si tienen dudas, preguntas o desean aportar al proyecto de otra manera, pueden escribirme al correo  neftisprojectcontact@gmail.com.

Muchas gracias a todos. Sigamos programando.

#3
https://www.pcbway.com/project/shareproject/DuinO_Clock.html

Hola a todos los entusiastas de la electrónica.

Les dejo el enlace a un proyecto que realicé hace unas semanas. La idea original era únicamente la de realizar un sencillo reloj que mostrara la hora mediante 12 diodos led para indicar la hora y cada 5 minutos, y otros 4 leds para los minutos del 1 al 4. Es decir, que para mostrar las 12:10, parpadea el reloj situado a las 12, después parpadea el led de las 2. Luego, para mostrar las 12:12, parpadea el led de las 12, después parpadea el led de las 2 y después el segundo led del grupo de 4 leds.



Pero el diseño original fue modificado para que no sólo pudiera mostrar la hora o hacer las funciones de un reloj, sino que puede ser usado como tarjeta de desarrollo y agregar sensores y otras salidas, así como comunicación SPI y USB.

El circuito está basado en el Atmega328P, y el proyecto original fue hecho con un Arduino Nano. Si les gusta el proyecto, les agradecería mucho, en verdad mucho, su like y compartan el enlace del proyecto que dejé al inicio del post. Ahí podrán encontrar toda la información y el código. Después intentaré añadir otras funciones al código original. También pueden descargar el PCB u ordenar la fabricación del mismo desde el enlace por sólo $5 USD.

Importante: Si encuentran algún error en los diagramas por favor avísenme para hacer las correcciones necesarias. Si tienen alguna duda, por favor pregúntenme.
#4
Foro Libre / Compartir mi libro
16 Diciembre 2016, 03:08 AM
Buen día a todos.

El día de hoy quiero compartir con ustedes un una historia que escribí hace tiempo y que (por tiempo limitado) pongo a su disposición de manera gratuita. Es un relato corto de tipo fantástico. A continuación les dejo la descripción completa así como los enlaces. Espero que sea de su agrado y disfruten de leerla tanto como yo al escribirla.




Abelardo es un hombre joven y triste que perdió a la mujer que ama y, aunque ha pasado un año desde que ella murió, él se empeña en hundirse en su melancolía, en sus recuerdos, en sus posesiones personales y en hacer de cuenta que ella aún habla con él. Pero entonces, una fría noche de Octubre, Abelardo recibe la inesperada visita de una hermosa mujer quien dice ser de La Muerte y, que lo despierta a medianoche sólo para informarle que él ha muerto y que el tiempo se ha detenido. Ahora Abelardo deberá enfrentar la noticia de su propia muerte al mismo tiempo que re-descubre lo que fue su vida, las cosas que todavía son suyas y qué ocurrió con la mujer que amó.




México: https://www.amazon.com.mx/dp/B01MXDBAUH

España: https://www.amazon.es/dp/B01MXDBAUH
#5
Hola. Buen día.

No encuentro la manera de obtener el nombre del método que está ejecutando un hilo en particular.

Ya busqué dentro de la clase ProcessThread pero creo que esa clase no me da esa información.

Muchas gracias por su ayuda.
#6
Foro Libre / Tres obras de arte
23 Diciembre 2015, 21:16 PM
Hola, comunidad.

Quiero compartirles tres de las obras de arte que e pintado y/o dibujado. Dos de ellas están en venta y la otra (por el momento) sólo está de exhibición.

http://benjamin3ro.artelista.com/

Si alguna de las obras les ha gustado, me harían un gran favor compartiendo el enlace.

Gracias y feliz navidad.


#7
Saludos, colegas programadores.

Les traigo el código fuente de una aplicación tipo "cliente ping" que nos puede servir para monitorear el estado de nuestros sitios web, u otros sitios (servers) que nos interesen.

En la descripción del video viene el enlace al código fuente. Si tienen sugerencias o encuentran bugs no duden en comentar.

Que tengan un buen día.

[youtube=640,360]https://www.youtube.com/watch?v=vsd4SkAA8e4[/youtube]
#8
Hola, buen día. Actualmente estoy trabajando en un proyecto donde importo un ensamblado y hago una instancia de una clase definida en ese ensamblado. La cuestión es que tengo un botón cuya acción es borrar el archivo de dicha dll, sin embargo el método File.Delete() me arroja una excepción de tipo UnauthorizedAccessException. He intentado eliminar la instancia que tengo de dicha clase dentro del ensamblado, pero al parecer esto no es suficiente. ¿Cómo puedo hacerlo, si es que puedo?
#9
Hola, buen día. El día de ayer hice un script que hace uso de imagecreatefromjpeg() e imagecopyresampled() para generar miniaturas. En mi servidor local crea las imágenes a la perfección, sin embargo en el servidor de mi proveedor de hosting unas imágenes las genera bien y otras no. Ahora bien, siempre son las mismas imágenes.

versión PHP local: 5.2

versión PHP proveedor hosting: 5.4.25
#10
Foro Libre / Mi opinión sobre el bullying
30 Octubre 2014, 19:12 PM
En mi país tenemos un dicho: "El que se enoja pierde"

Señores, miembros del staff y usuarios comunes y corrientes como yo:

Me disculpo si no es el lugar indicado para poner esto, pero el tema del usuario graphixx (o algo así) ya está cerrado y no quería quedarme con las ganas de decirles una cosa. ;)

Es necesario para el ser humano discutir con sus semejantes, de verdad lo necesitamos. Y la manera más sana de hacerlo es verbalmente o por escrito. Incluso debería haber un subforo para que la gente se tire ***** entre si y se desestrese (no sé si escribí bien esta última palabra XD). No estoy justificando el mentado bullying lo que digo es que debemos tener el suficiente criterio para ignorar lo que no nos sirve (la ***** que nos tiran) de los comentarios objetivos... o, participar de igual manera tirando *****. Además las cosas no siempre son lo que parecen y generalmente todo está en la mente de quien lo interpreta.

Insisto: "El que se enoja pierde", así que no se enojen. Y la próxima vez que se sientan agredidos, hagan una de dos cosas: ignoren, o participen. Que me imagino que ya todos aquí estamos bastante grandecitos. ;)

Un saludo y besos y abrazos gays para todos. XD
#11
Me estaba preguntando si este año habrá un concurso de aplicaciones como el año pasado. No sé si alguien más se estaba preguntando lo mismo.
#12
He podido utilizar la función sendkeys() sin ningún problema, incluyendo teclas como el tabulador, shift, alt, etc. Pero me gustaría también poder enviar otro tipo de teclas como por ejemplo las teclas multimedia de algunos teclados.

¿Es posible realizar esto directamente en .NET o necesito hacer uso de la API de Windows?
#13
Buenas, colegas de elhacker.net

Veo que este foro está algo muerto en cuestión de cualquier cosa que no tenga que ver con teorías de cifrado y la ofuscación de la información. En su lugar sólo se ven temas como "¿quién puede descifrarme este código?".

Les traigo una aplicación para cifrar archivos que utiliza un cifrado mediante un hash de 2048 bits, realizando operaciones XOR sobre el flujo de la información.

Las principales ventajas son:


  • Cifrado por contraseña mediante hash de 2048 bits
  • Velocidad de cifrado de 70 Mb/s (test en Core2Duo E4600 2Gb Ram 500 Gb DD Sata2)
  • Cifrado de carpetas completas incluyendo subdirectorios.
  • Protección de los archivos cifrados que impide que se descifren accidentalmente con otra contraseña.

http://www.benjasoft.is-great.net/index.php?CargarP=Scripts/PHP/PHPAuto.php&ParPost=333&ArchReemplazar=DocumentosPagina/Auto_programa1.html&ArchVariables=Recursos/Aplicaciones/AutoCriptoVariables.txt

El algoritmo para generar el hash es un algoritmo desarrollado por mí. Tómense el derecho de desconfiar de la seguridad del algoritmo pero mi propuesta es la siguiente: Si alguno tiene un algoritmo de hash que haya desarrollado (y quiera distribuirlo para uso libre) puede mandarlo y así incluirlo en la aplicación.

Espero que este subforo pueda ser reanimado y se debatan viejas y nuevas forma de cifrar la información. Un saludo a todos.
#14
.NET (C#, VB.NET, ASP) / Sockets .NET
13 Octubre 2013, 07:43 AM
Buen día.

He estado leyendo acerca de los raw sockets en el .NET Framework y aparentemente no se pueden enviar encabezados TCP por cuestiones de seguridad.

Mis preguntas son las siguientes:

¿Esto aplica únicamente para el .NET Framework o para todo el sistema operativo? Es decir ¿si hago una función en C++ podré crear encabezados TCP y enviarlos?

De verdad les agradecería mucho que me informaran al respecto, ya que "googleando" no he podido salir de dudas.
#15
Hace poco alguien sugirió la idea de una librería con algoritmos de cifrado en otro post de este mismo foro. Ahora yo quiero contribuir con este código de cifrado muy básico, incluyo una aplicación de ejemplo que usa dicha librería. Está hecho en VB.net Framework 3.5 y he llegado a cifrar 35 MB en un segundo.

Es un algoritmo realmente básico, pero ojalá a más de uno le sirva de algo.

http://www.adrive.com/public/UdJxaM/LorenaEncript.rar

Sialguien tiene una duda con el código me avisan.

Nota: En la aplicación de ejemplo no se puede utilizar el mismo nombre de archivo como archivo de salida. Es posible que la barra de progreso se quede a medio camino pero el archivo se cifra o descifra en su totalidad.
#16
Hola, comunidad.

Quiero saber la opinión de todos respecto a los IDE's gratuitos y si algunos de estos son tan buenos o casi tan buenos como los de pago. Y es que yo utilizo únicamente IDE's que son gratuitos. Como las versiones express de Visual Studio.

Díganme por ejemplo: ¿Alguno de ustedes se ha visto en algún proyecto donde de verdad no pueda continuar porque el IDE se quedó corto en características?

Me gustaría también que postearan una lista con el lenguaje o lenguajes en que programan y el IDE que utilizan. Yo por ejemplo:

.NET Framework -- Visual Studio express 2008/2010
C/C++ -- Dev C++
PHP/HTML -- Net Beans/CofeeCup
JAVA -- Net Beans
#17
Bueno, por fin he terminado mi aplicación para controlar una computadora de manera remota y ahora es totalmente visual, es decir, podrás ver la pantalla de la máquina remota como si estuvieras frente a ella e incluso podrás hacer click y enviar pulsaciones del teclado.

En caso de que cualquiera de ustedes quiera probarla dejo este es el enlace.

http://www.benjasoft.is-great.net/index.php?CargarP=Scripts/PHP/PHPAuto.php&ParPost=333&ArchReemplazar=DocumentosPagina/Auto_programa1.html&ArchVariables=Recursos/Aplicaciones/AutoComRem1Variables.txt

He encontrado un único bug en la aplicación y es que algunos caracteres especiales enviados pueden no corresponder con los que se presionan originalmente, pero todas las teclas alfanuméricas funcionan bien. Si alguien encuentra otro error le agradecería mucho que me lo hiciera saber.




El Benjo
#18
Hola, muchas gracias a todos los hackers que participan en esta página. Sin ellos no tendría donde publicar esto.






He desarrollado una aplicación en VB.net para enviar instrucciones a una máquina remota.

Ahora, sé muy bien que hay muchas aplicaciones que ya son mejores de lo que esta será jamás, pero igual me gustaría mucho que la provaran usteds mismos y me dieran su opinión en cuanto a algunos puntos.


  • El diseño visual en general de la aplicación
  • Cualquier error que se produzca mientras la están utilizando, y si pudieran tomar una captura en pantalla del error se los agradecería más.

Además de esto me gustaría pedirles que intenten violar la seguridad al momento de la autenticación.

Les dejo el enlace: http://www.benjasoft.is-great.net/index.php?CargarP=visorblog_Individual.php&ParPost=333&Directorio=Este%20Sitio&EntradaBloGo=ComRem%201%20Primera%20fase%20lista

Muchas gracias a todos !!! Espero sus opiniones
#19
Desafíos - Wargames / Surge un nuevo HASH
21 Marzo 2012, 01:20 AM
Hola, sólo les diré que un amigo mío me ha pasado ésto y decidí que era bueno compartirlo con algunos (o muchos). Se trata de una apliación que pide una cadena y genera un hash a partir de esta. Lo interesante es que no parece concordar con ningún algoritmo conocido. Dejo el enlace:

La aplicación muestra el nombre clave del algoritmo como Lady x256 supongo que por ser de 256 bits.

http://www.mediafire.com/?o1q9dce6795byg4

¿Es así como la gente prueba los nuevos sistemas de cifrado? ¿No parece algo sacado de una pelicula de Bruce Willies?