Entradas

Mostrando las entradas etiquetadas como php

Graficos de barra, gráficos de líneas, MatPlotLib en PHP

Imagen
  Generar gráficos de barra, gráficos de líneas en php MatPlotLib  es una herramienta fantástica escrita para Python, para generar gráficos cuando realizamos Machine Learning. Nos ayuda muchísimo en el momento de entender nuestros datos antes de introducirlos en nuestras redes neuronales para identificar problemas y modificarlos gracias a esta ayuda visual. El problema que nos encontramos muchos programadores es que utilizamos servidores compartidos en la nube y no nos dejan mucho margen para instalar apicaciones de terceros, así que, cómo podemos obtener estos resultados o algo muy aproximado utilizando PHP? La solución es GRAPH-PHP . Una herramienta que he desarrollado para generar gráficos al estilo de  MatPlotLib . Aún está en una fase muy primeriza, pero pronto podré ampliar esta herramienta con nuevas características. Todo y así ya se puede utilizar y los resultados son muy buenos. Os presento algún ejemplo que veréis muchas veces en  MatPlotLib , realizados co...

Numpy linspace() en php, así como elevar un array con pow()

Imagen
  Funciones linspace() o elevar arrays ya disponibles en PHP He liberado una clase en PHP que puede realizar cálculos de potencias en arrays o generar un array ordenado entre dos números con un número de muestras en concreto. Esta última función es la función de numpy linspace(). Estas funciones se suelen utilizar en Python en el Machine Learning, pero en PHP escasean, así que.... me las he inventado y ahora ya existen 😁. Un ejemplo muy claro de su uso sería en el siguiente código:  // NOTE: The graph library will be published soon. this example is only to see the use of Linspace() & pow()  // We assume that $ax in PHP is a graph_object, and create an ext_op_ml object in $m variable   // PYTHON PYPLOT   x = np.linspace(0, 2, 100)   ax.plot(x, x, label='linear')   # Plot some data on the axes.   ax.plot(x, x**2, label='quadratic')   # Plot more data on the axes...   ax.plot(x, x**3, label='cubic') ...

Leer Temperatura CPU, memoria, carga de sistema en PHP

Imagen
  Como leer la temperatura de la CPU/GPU, Carga de sistema, Uso de memoria, uso de disco, .... desde PHP A veces nos encontramos con la necesidad de conocer estos parámetros, como por ejemplo cuando estamos ejecutando nuestros backpropagations en procesos de Machine Learning. Estos procesos consumen tanta CPU o GPU que el sistema se sobrecalienta, y es imprescindible conocer en todo momento la temperatura de la CPU para no provocar un desastre. Por ejemplo. Qué pasa cuando no se controla la temperatura y se deja que el proceso siga su curso hasta poner al rojo vivo la CPU? pues que al llegar a los 100ºC 🌡 el sistema se para bruscamente.... y os lo digo por experiencia 😅. Creé esta clase para ayudarme en los procesos de Machine Learning en PHP, pero decidí liberarla porque la verdad es que hace muchísimas cosas más, como conocer el uso de la memoria, del disco, estado de carga de la CPU, uptime, versión del sistema, saber el número de cpu's, ... Esta clase se puede utilizar para ...

Convertir imágenes, crear previews de pdf's o PSD, thumbnails, ....

Imagen
  Manejo de imágenes en PHP. Cambiar de formato a webp u otros, extraer imágenes de pdf o PSD, cambiar tamaño o aplicar filtros Esta clase en PHP os ayudará enormemente en el proceso del tratamiento de imágenes. Muchas veces necesitamos realizar tareas básicas como redimensionar en bloques las imágenes a unos tamaños dados, pasarlas a blanco y negro o escala de grises, hacer un mirror, o incluso transformar una copia de la imagen original al formato que tanto le gusta a google, que es el formato webp . Muchas veces las funciones las tenemos disponibles en php, pero hay que realizar varios pasos para llegar a un resultado satisfactorio. Esta clase está optimizada para que con muy pocas líneas de código podamos realizar la tarea rápidamente y con funciones muy útiles y que no están incluidas por defecto en el lenguaje original PHP, como el filtro de tono SEPIA. Otro uso muy interesante es el poder extraer una imagen del contenido de un pdf o de un psd. Esto nos puede servir para crea...

Visualización de datos en gráficos de barra. Entorno CLI-PHP. Encuentra Outliers

Imagen
  Visualización de datos en gráficos de barra para ayudar en la búsqueda de Outliers La limpieza de los datasets en los procesos anteriores al Deep Learning son esenciales. Encontrar los Outliers (o datos que están fuera de lo común), es primordial para rectificarlos y conseguir unos datos homogéneos. Si no los detectamos o no los regularizamos, nuestras redes neuronales tendrán serios problemas para aprender correctamente, ya que un solo dato de estos puede hacer 'volverse loco' a nuestro modelo y no servir de nada. Ya os comenté en un artículo anterior la importancia que tenía este paso, y es necesario de disponer las herramientas adecuadas. Existen algunas que son de pago y privativas. Yo me he decantado por creármela por mi mismo y liberar el código fuente para que alguien más la pueda aprovechar. Se puede utilizar PHP para realizar Machine Learning . En PHP, cuando se realizan las tareas de búsqueda de errores en nuestros datasets, debemos emplear la Ingeniería de datos ...

Visualización en tabla para detectar datos incorrectos y limpiar los datasets antes de realizar el Deep Learning (aprendizaje profundo) en PHP

Imagen
  Clase en PHP para visualizar la estructura de datos, preparar y limpiar el dataset antes del Deep Learning Los datos que facilitamos a nuestros modelos de redes neuronales deben de estar impecables, tal y como explicaba en el artículo de Ingeniería de datos para el Machine Learning . No vale con que le demos los datos a nuestro modelo de red neuronal tal cual lo importamos. Nos podemos encontrar con: - Campos vacíos: '' ó '-' - Campos Nulos: null - Campos numéricos erróneos: 'na' ó 'nan' - Valores numéricos 0. Puede ser que falten datos o que realmente sean correctos - Fechas que podemos separar en sub features - Otros campos que podemos separar en sub features, como por ejemplo una IP o códigos de paises 'es', 'de', 'fr',…. - Campos en texto donde el sistema no podrá aprender nada y deberemos eliminarlos o cambiarlos. En definitiva, todo se reduce en tener bajo nuestro control todos los datos, que no se nos escape un dato incoh...

Ganador 2 premios internacionales a la innovación en PHP en Inteligencia Artificial Machine Learning

Imagen
  2 PREMIOS INTERNACIONALES A LA INNOVACIÓN EN PHP (System Resources & Csv Pair File). Destinadas a la Inteligencia Artificial  Las dos clases en php nominadas el mes pasado han quedado clasificadas como ganadoras en los premios de Innovación en PHP . Ambas an quedado en 1ª posición. Es todo un reconocimiento, lo que indica la calidad del código y la utilidad de ellas. No basta con escribir código y subirlo. Hay que limpiarlo, que lo pueda entender cualquier programador, utilizar al ser posible el inglés como idioma internacional para poder llegar a más programadores, generar una buena, detallada y comprensible documentación, .... Siempre hay unos estándards que habría que cumplir para hacer más fácil la programación de todo el mundo. Estas dos clases están orientadas a mejorar la usabilidad del Machine Learning & Deep Learning en PHP dentro del marco de la Inteligencia Artificial. La primera está destinada a obtener los recursos del sistema en php , como Uso y obtener...

Nominadas en PHPClasses.org Imprimir Etiquetas en PDF desde PHP y Encender/Apagar Led Raspberry GPIO

Imagen
Este mes estamos de enhorabuena. Dos de las clases que publiqué en phpclasses.org han sido nominadas a los premios internacionales de innovación en PHP . Las dos librerías están bien documentadas. Recientemente hice un artículo para cada una de ellas, para Imprimir etiquetas en PDF desde PHP y para Encender/apagar LED en Raspberry GPIO . Podéis encontrar el código fuente aquí: - Imprimir etiquetas en PDF desde PHP - Encender/Apagar LED en Raspberry GPIO El mes pasado, las dos clases que publiqué en PHP y que fueron nominadas,  han sido premiadas y han quedado ambas en 1ª posición . No está mal, ¿no? 👏👏👏 Por cierto.... ya se ha abierto el período de votación ... por si queréis echar una mano😁.

Bug en PHP Spl seek SplFileObject. (Solucionado)

Imagen
Existe un bug en la función seek() de SPL  ( Standard PHP Library ) en PHP < PHP8.0.1. Aquí la solución. El bug concretamente aparece cuando hacemos un seek() del objecto SPL a la 2ª fila (índice 1). Nos devuelve la 3ª fila en lugar de la 2ª fila, y así con los posteriores índices de seek(). El bug está presente en todas las versiones anteriores a la PHP8.0.1. Los códigos de los programas que utilizamos a diario los creamos desarrolladores como yo. Muchas veces fallan a causa del uso en algún software o hardware específico. Otras veces fallan por una mala codificación. En definitiva, el hardware ha sido creado por humanos, el código lo teclean personas humanas, y como humanos que somos, podemos cometer errores también, ya sea en el hardware o en el software. La ventaja del software libre es que el código es público. Lo puedes descargar, modificar, reutilizar, etc... y por otra parte tiene la ventaja que todos los programadores se comunican entre ellos para detectar fallos, mejor...

Clase en PHP para encender/apagar LED en Raspberry pi

Imagen
  Clase en puro PHP para encender/apagar led en Raspberry pi. Acceso directo a los puertos GPIO. He preparado una clase sencilla en PHP puro para poder, como os explicaba en el artículo anterior,  acceder directamente a los puertos GPIO desde PHP . Este acceso a los puertos GPIO se realiza directamente y de forma nativa contra el sistema, sin necesidad de usar exec(), shell_exec() o cualquier funcion de ejecución externa al lenguaje de programación PHP. El repositorio de la clase en PHP lo podéis descargar tanto en github.com como en phpclasses.org . Para utilizar la clase solo tenéis que realizar el include require_once( 'led.class.php' ); Debemos realizar el export antes de poder utilizar el puerto GPIO. La clase ya está preparada para realizar el export automáticamente con un LED individualmente o con varios. Si se utilizan varios LEDS, se pude aprovechar el sistema para que abra un solo fichero de export y un fichero unexport, común para todos los LEDS, lo que hará que so...

Raspberry Pi. Encender/Apagar LED desde PHP. Acceso directo a los puertos GPIO ultrarápido.

Imagen
  Objetivo:  Encender y apagar un led a muy alta velocidad, SIN realizar llamadas al sistema shell_exec() . Control directo de los GPIO con puro PHP. Acceso directo a los puertos GPIO con PHP nativo. No, tranquil@s. Este no es un tutorial más que te enseña a encender o a apagar un led y ya está. La misión de este artículo es la de enseñar a hacerlo con PHP de forma optimizada, accediendo directamente a los puertos GPIO sin utilizar shell_exec() para incrementar el rendimiento de nuestras aplicaciones, sobre todo en los las primeras raspberry pi que aparecieron, con una velocidad de proceso limitada, pero que, lejos de desaparecer, aún siguen funcionando tan bien como el primer día. 😀 Existen muchas maneras de utilizar los LEDS con los puertos GPIO en nuestra Raspberry Pi. Pero hoy os voy a mostrar una técnica que en PHP nativo y puro que es con muchísima diferencia la que consigue el  tiempo de respuesta más rápido  de acceso a los puertos GPIO. Lo que aquí encontr...

Imprimir etiquetas APLI en PDF desde PHP

Imagen
  Imprimir etiquetas APLI, calcula márgenes, enlaza con plantillas word, Deja unas etiquetas sin imprimir para aprovechar las anteriores, ahora me cambian de impresora, ahora me cambian de formato de etiquetas, ahora las hojas están en blanco y tengo que ser yo quien dibuje los bordes para recortar las etiquetas, ... ¿Como enlazo con la base de datos para hacerlo fácil al cliente?,....  Problemas, problemas y más problemas ¿Cuantos dolores de cabeza os deben de haber causado a la hora de imprimir etiquetas APLI al largo de los años? Yo lo he sufrido y he decidido crear finalmente una clase en PHP standard para poder solucionar este problema definitivamente.... al menos con servidores web. Al crear la clase hay que tener en cuenta que hay que utilizar medidas en cm y no en píxeles, ya que esto es lo que hace que muchos de los trabajos que he visto realizados, funcionen en unos sistemas y en otros no. Al hacerlo en medidas de documentos (centímetros en este caso), funcionará par...

¿Se puede utilizar Machine Learning en PHP?

Imagen
  Vamos al grano, a lo que interesa. La pregunta del millón.  ¿Se puede utilizar Machine Learning en PHP?  y la respuesta tan esperada por los que lo preguntan.... pues es un....  SÍ !!!!! y ya que estamos...   ¿Se puede utilizar Machine Learning en PHP en multiprocesadores con multihilo?  pues....  SÍ , también!!!!! y si no fuese mucho pedir...   ¿Se puede utilizar Machine Learning en PHP en multiprocesadores con multihilo en una Raspberry pi?  pues....  SÍ , también se puede. Qué subidón!!! vamos a intentar rizar el rizo, a ver que me respondes ahora .   ¿Se puede utilizar Machine Learning en PHP en multiprocesadores con multihilo en una Raspberry pi 2 B con 512Mb de ram, 1 solo procesador a 700Mhz y 1.000 threads a la vez?  pues claro que  SÍ (o incluso más Threads 😱), pero nos hemos pasado tres pueblos (tres pueblos por no decir más). ¿Para que quieres tener tantos hilos en un solo procesador...