sábado, 11 de julio de 2020

Curso de Keras. Evaluar una red neuronal o modelo

Un modelo o red neuronal en aprendizaje automático es el proceso creado para analizar y extraer datos para obtener información. En las redes neuronales se componen de nodos o neuronas que actúan en capas para procesar datos.

El primer paso para crear una red neuronal es obtener un conjunto de datos. Es decir, una agrupación de datos relevantes para su uso en el modelo. Si se trata de un problema de regresión, generalmente son datos históricos. Si se trata de un problema de clasificación, se trata de colecciones de información similar.

Evaluar una red neuronal o modelo
Más imágenes como esta aquí

sábado, 4 de julio de 2020

Procedimientos almacenados, INSERT SELECT , UPDATE y MERGE con Oracle

Esto es un ejemplo de un procedimiento almacenado de Oracle con operaciones genéricas de creación del procedimiento almacenado, un INSERT SELECT, que consiste en un INSERT que se alimenta de un SELECT de otra tabla o tablas normalmente unidas por INNER JOIN.
A continuación hay un UPDATE normal y corriente con sus actualizaciones de campos y las condiciones de actualización.

También se ha incluido un MERGE que es como un UPDATE pero algo más complejo.

El MERGE utiliza también una SELECT que también puede ser compleja y al final se hace una comparación de la SELECT con la tabla a actualizar campo a campo con un on similar a los de un INNER JOIN con la condición de que estos campos deben ser Primary Key de sus tablas respectivas. Donde se produzca la coincidencia se actualiza el campo indicado de la tabla con el valor tomado de la SELECT interior.

Finalmente las instrucciones de cierre de procedimiento almacenado, también se muestran al comienzo y al final las instrucciones  DBMS_OUTPUT.put_line que muestran por pantalla o en un log el resultado de las acciones por la que va pasando, en este caso muestra la  fecha, hora y un comentario con las actividades que se están realizando.


Este es el Procedimiento almacenado.


--COMIENZO SP

create or replace PROCEDURE                                                                INSERT_NOMBRE AS 
BEGIN

DBMS_OUTPUT.put_line(TO_CHAR(CURRENT_DATE, 'DD-MM-YYYY HH24:MI:SS'));
DBMS_OUTPUT.put_line('Ejemplos INSERT SELECT y UPDATE-MERGE');


--INSERT SELECT SP_TABLA1

INSERT INTO PROPIETARIO.NOMBRE_TABLA1
  (
    ID_A,
    CAMPO2_B,
    CAMPO3_C,
    CAMPO4_D
  )
SELECT 
TB4.ID1_A, TB3.CAMPO1_B, TB3.CAMPO2_C, TB2.CAMPO1_D from PROPIETARIO.TABLA2 TB2 
INNER JOIN PROPIETARIO.TABLA3 TB3 ON TB2.ID = TB3.ID
INNER JOIN PROPIETARIO.TABLA4 TB4 ON TB4.ID2 = TB3.ID2;


--UPDATE NORMAL 

UPDATE PROPIETARIO.TABLA1 TB1
SET CAMPO1 = expression1,
    CAMPO2 = expression2,
    ...
    CAMPO_N = expression_n
WHERE condiciones;


--MERGE

Los campos del on ( t2.ID = t1.ID) deben ser primary key de la tabla.

merge into PROPIETARIO.TABLA1 t1
using (SELECT A.COD_OBJT , B.DES_VALEXT  
from  PROPIETARIO.TABLA2 A inner join  PROPIETARIO.TABLA3 B ON A.ID = B.ID         
where B.CAMPO3 = 'Valor' ) t2
on ( t2.ID = t1.ID)
when matched then update set t1.CAMPO1 = t2.CAMPO1 ;


--FIN SP

----------------------------------------------------------------
DBMS_OUTPUT.put_line(TO_CHAR(CURRENT_DATE, 'DD-MM-YYYY HH24:MI:SS'));
DBMS_OUTPUT.put_line('FIN PROCESO');
COMMIT;

--END SP_TABLA1;


Un merge más genérico.

merge into PROPIETARIO.TABLA1 t1
using (Select COD_CAMPO1,DES_CAMPO2 from  PROPIETARIO.TABLA2) t2
on ( t2.COD_CODIGO = t1.COD_CODIGO)

when matched then update set t1.DES_CAMPO_T1 = t2.DES_CAMPO_T2;

Y otro tipo de update.

UPDATE  
        (SELECT A.DES_ORIGEN AS old_value,
                E.DES_DESTINO AS new_value 
        FROM PROPIETARIO.TABLA1 A INNER JOIN PROPIETARIO.TABLA2 E ON A.COD_OBJT = E.COD_OBJT
        where E.CAMPO_X = 'Condición' )

        SET old_value = new_value; 

El procedimiento almacenado se crea en el entorno Oracle SQL developer.

Procedimiento almacenado en Oracle SQL Developer

Exists

SELECT Campo1
  FROM Tabla1 d
  WHERE EXISTS
  (SELECT * FROM Tabla2 e
    WHERE d.Campo1
    = e.Campo1);

Llamada desde Visual Basic

Si queremos llamar a un SP desde VB hacemos lo siguiente:

Const Tabla = "Tabla"

 Sub CargaTabla()

        Dim srSQL As StreamReader
        Dim strConsulta As String

        Try

            strStartupPath = My.Application.Info.DirectoryPath
            srSQL = New System.IO.StreamReader(strStartupPath & "\Ejecuta_SP.sql")
            strConsulta = srSQL.ReadToEnd
            cmdPD = New OleDb.OleDbCommand(strConsulta, cnxPD)
            cmdPD.CommandType = CommandType.StoredProcedure
            cmdPD.ExecuteNonQuery()
            bs.DataSource = ds.Tables(Tabla)

        Catch
            MsgBox("Se ha producido un error insertando los datos en TABLA: " & Err.Description)
        End Try

    End Sub


EN EJECUTA_SP va


NOMBRE_SP

sábado, 27 de junio de 2020

Curso de Keras. Compilando una red neuronal


Keras trabaja con el concepto de modelo (red neuronal). Un modelo es una serie de pasos a  realizar sobre un conjunto de datos para crear una predicción o una clasificación. El modelo está construido de capas, comenzando con la capa de entrada, donde los datos se insertan en el modelo. Continuando en las capas ocultas, donde se procesan los datos. Y finalmente culmina en la capa de salida, donde se encuentra la predicción o clasificación.

Curso de Keras. Compilar una red neuronal
Más fotos de circuitos aquí

viernes, 19 de junio de 2020

Metodologías Agile. El tablero Kanban


Dentro de las metodologías ‘agile’, la gestión de proyectos con herramientas visuales suprime reuniones innecesarias 
y facilita la eliminación de cuellos de botella para agilizar las tareas.

Bajo las premisas de este tipo de modelos de gestión empresarial, los equipos multidisciplinares, con autonomía
para organizarse y capacidad de ejecución, se convierten en la base de las organizaciones. Esta forma de trabajar ayuda a garantizar la entrega constante de resultados y soluciones en tiempos más cortos.


Tablero Canvan


sábado, 13 de junio de 2020

Curso de keras: Conjuntos de datos (datasets) para redes neuronales


Una red neuronal de aprendizaje profundo depende de los datos. La información a la que se hace referencia es tan importante como la forma en que la red neuronal la difunde.
Un conjunto de datos contiene hechos e información recopilados con la intención de usarlo como referencia o análisis. Las redes neuronales pueden utilizar imágenes, texto o números como entrada. Y esta entrada es lo que la red neuronal utiliza para aprender y hacer predicciones.

Los conjuntos de datos provienen de muchas fuentes. Las empresas a menudo generan datos internamente a través de aplicaciones o ingreso manual de datos para su uso en redes neuronales para realizar predicciones o análisis. Algunos gobiernos e instituciones de investigación publican conjuntos de datos para el consumo público.
Keras tiene numerosos conjuntos de datos disponibles en Internet creados por los desarrolladores o entidades externas y estructurado para ser compatible. Están disponibles gratuitamente para pruebas y planificación.

Más fotos como esta.

sábado, 6 de junio de 2020

Curso de Keras: Clasificacion por regresión

La regresión es un algoritmo supervisado de aprendizaje automático que genera un resultado previsto que es continuo en lugar de discreto. Eso significa que puede ser un número entero o un rango de datos, como puede ser el número de ventas durante un período de tiempo, en lugar de un elemento absoluto, como puede ser decir si hay un gato en una foto o no. 

Hay dos tipos principales de regresión. simple y multivariable. La regresión lineal simple utiliza conjuntos de datos donde hay dos características o columnas que tienen datos numéricos relacionados. Como por ejemplo el número de ventas de una compañía en una columna y la temperatura en la otra. El resultado de la predicción es una estimación de las ventas en relación con la temperatura en ese momento. Podría ser que a medida que baja la temperatura, las ventas aumenten. (por ejemplo las ventas de abrigos en unos grandes almacenes)




Nota de Tensorflow.
Si en vez de anaconda o CNTK  queremos trabajar con Tensorflow-colaboratory y tenemos problemas con las versiones:
#Para determinar que versión de tensor flow estamos utilizando:
!pip show tensorflow

#Para ver la versión actual de tensorflow:
!pip install -–upgrade tensorflow

# Para ejecutar una versión específica:
!pip install tensorflow==2.0


Curso de Keras: Clasificacion por regresión
Fotos similares a esta.