Como instalar nilmtk-contrib y no morir en el intento

2024 03 31 12 53 33 Como crear un dataset en el formato H5 Busqueda de Google y 6 paginas mas Pe

Introducción a nilmtk_contrib

nilmtk_contrib es un repositorio que contiene una colección de algoritmos de vanguardia para la tarea de desagregación energética, implementados utilizando la API de Experimentación Rápida de NILMTK. Estos algoritmos están diseñados para ayudar en el monitoreo no intrusivo de la carga (NILM), que tiene como objetivo descomponer el consumo de energía agregado de un hogar en datos de consumo a nivel de electrodomésticos.

El repositorio nilmtk_contrib incluye algoritmos como:

  • Modelo Oculto de Markov Factorial Aditivo (Additive Factorial Hidden Markov Model)
  • Modelo Oculto de Markov Factorial Aditivo con Restricciones de Señal Agregada
  • Codificación Dispersiva Discriminativa
  • Autoencoder Denoising RNN
  • Seq2Point
  • Seq2Seq
  • WindowGRU

Estos algoritmos permiten realizar tareas como:

  • Entrenamiento y pruebas en múltiples electrodomésticos
  • Entrenamiento y pruebas en múltiples conjuntos de datos (aprendizaje por transferencia)
  • Entrenamiento y pruebas en múltiples edificios
  • Entrenamiento y pruebas con agregados artificiales
  • Entrenamiento y pruebas con diferentes frecuencias de muestreo

Para aquellos interesados en la investigación o en aplicaciones prácticas de NILM, nilmtk_contrib ofrece una plataforma robusta para experimentar con diferentes técnicas y enfoques en la desagregación energética

Instalación de Nilmtk_contrib

Nilmtk-contrib pretende simplificar el uso del famoso paquete open software NILMTK el cual conlleva una curva de aprendizaje considerable. Lo normal es que si tiene los paquetes siguientes pueda instalarse de forma sencilla:

  • NILMTK>=0.4
  • scikit-learn>=0.21 (already required by NILMTK)
  • Keras>=2.2.4
  • cvxpy>=1.0.0

Puede instalar en su entorno actual con:

conda install -c conda-forge -c nilmtk nilmtk-contrib

o crear un entorno dedicado (recomendado) con:

conda create -n nilm -c conda-forge -c nilmtk nilmtk-contrib

A menos que sea un usuario avanzado, es mejor utilizar el paquete Conda en lugar del repositorio Git, ya que este último puede contener cambios en curso.

Lo normal es que esto NO se mire las dependencia e intentemos instalarlo directamente. Si no se cumplen los requisitos anteriores un intento de instalación hará que se quede en un bucle infinito dado que el instalador no comprueba estos requisitos.

En este caso para poder instalarlo , lo mejor es desinstalar el entorno mal configurado, instalar las librerías que faltan y repetir la instalación mejor que con anaconda com Mamba (mas rápido) o con Anaconda. Veamos con mas detalle como hacerlo.

Desinstalación de instalaciones incorrectas en conda o mamba

Primero listamos todos los entornos usando el comando conda env list

Para desinstalar un entorno con Anaconda, puede seguir estos pasos:

  1. Asegúrese de que no está en el entorno que deseas eliminar. Si es necesario, puede desactivar el entorno actual con el comando:
conda deactivate
  1. Una vez que esté en el entorno base o en cualquier otro que no sea el que quiere eliminar, utilize el siguiente comando para desinstalar el entorno deseado (reemplaza nombre_entorno con el nombre real de tu entorno):
conda env remove -n nombre_entorno

Este comando eliminará el entorno especificado junto con todos los paquetes y dependencias que contiene. Si desea confirmar que el entorno ha sido eliminado, puede listar todos los entornos existentes con:

conda env list

El entorno que elimine ya no debería aparecer en la lista.. Por cierto el comando conda env remove -n, el argumento -n espera el nombre del entorno, no la ruta al directorio del entorno. Si desea eliminar un entorno utilizando la ruta al directorio donde está instalado, debe usar el argumento -p en lugar de -n. Aquí muestro cómo hacerlo correctamente:

conda env remove -p C:\Users\carlo\anaconda3\envs\nombre_entorno

Asegúrese de reemplazar nombre_entorno con el nombre real del entorno que desea eliminar. Si no estás seguro del nombre del entorno, puede listar todos los entornos disponibles con el comando:

conda env list

Esto mostrará todos los entornos y sus rutas correspondientes. Luego, puede usar la ruta correcta con el comando conda env remove -p para eliminar el entorno deseado.

IMPORTANTE: con estos comandos podemos eliminar entornos tanto de anaconda como de mamba.

Desinstalación con Mamba

Para desinstalar un entorno en Mamba, puede seguir un proceso similar al de Conda, ya que Mamba es un reemplazo rápido para Conda. Aquí muestro cómo hacerlo:

  1. Primero, asegúrese de no estar en el entorno que desea eliminar. Si es necesario, sal del entorno actual con el comando:
mamba deactivate
  1. Luego, para eliminar el entorno deseado, utilice el siguiente comando (reemplaze nombre_entorno con el nombre real de tu entorno):
mamba env remove -n nombre_entorno

Este comando eliminará el entorno especificado junto con todos los paquetes y dependencias que contiene. Para confirmar que el entorno ha sido eliminado, puede listar nuevamente todos los entornos existentes con:

mamba env list

El entorno que eliminó no debería aparecer en la lista. Recuerde que Mamba utiliza el mismo sistema de gestión de entornos que Conda, por lo que los comandos son muy similares ( por no decir idénticos).

Dependencias de nilmtk_contrib

Se nos olvida siempre que existen dependencias que debemos solucionar antes de instalar un paquete. En nuestro caso para nilmtk_contrib son las siguientes:

  • NILMTK>=0.4
  • scikit-learn>=0.21 (already required by NILMTK)
  • Keras>=2.2.4
  • cvxpy>=1.0.0

NILMTK

Para verificar la versión de NILMTK instalada en su entorno de Anaconda, puede abrir una terminal o el Anaconda Prompt

  • Active su entorno nilmtk-env con el siguiente comando en la terminal o Anaconda Prompt
conda activate nilmtk-env
  • Ejecute el comando:
conda list nilmtk

scikit-learn

Para comprobar si tiene instalado scikit-learn en su entorno nilmtk-env, puede seguir estos pasos:

  1. Active su entorno nilmtk-env con el siguiente comando en la terminal o Anaconda Prompt:
conda activate nilmtk-env
  1. Una vez activado el entorno, ejecute el siguiente comando para listar los paquetes instalados y buscar scikit-learn:
conda list

Keras

  1. Active tu entorno nilmtk-env con el comando:
conda activate nilmtk-env
  1. Luego, para comprobar si Keras está instalado, utilize el comando:
conda list | findstr keras

Si Keras está instalado, verá el nombre del paquete y su versión en los resultados. Si no aparece, significa que no está instalado en ese entorno.

Si necesita instalar Keras, puede hacerlo con el siguiente comando en Conda:

conda install -c conda-forge keras

Cvxpy

  1. Active tu entorno nilmtk-env con el comando:
 conda activate nilmtk-env
  1. Luego, para comprobar si cvxpy está instalado, utilice el comando:
conda list | findstr cvxpy

Si no aparece ,para instalar cvxpy, puede utilizar el gestor de paquetes de Conda o pip. Aquí muestro cómo hacerlo con Conda:

conda install -c conda-forge cvxpy

Mamba

Existe un repositorio en github que contiene los instaladores mínimos para Conda y Mamba específicos para conda-forge, con las siguientes características preconfiguradas:

  • Los paquetes del entorno base se obtienen del canal conda-forge.
  • El canal conda-forge se establece como el predeterminado (y único) canal.
  • Ponemos énfasis en soportar varias arquitecturas de CPU (x86_64, ppc64le, y aarch64 incluyendo Apple Silicon). El soporte opcional para PyPy en lugar del intérprete Python estándar (también conocido como «CPython») se proporciona en los instaladores con -pypy3- en su nombre de archivo.

Los instaladores de Miniforge están disponibles aquí: https://github.com/conda-forge/miniforge/releases

Descargue y ejecute el instalador de Windows. Siga las instrucciones, teniendo en cuenta las opciones «Crear accesos directos en el menú de inicio» y «Añadir Miniforge3 a mi variable de entorno PATH«. Esta última no está seleccionada por defecto debido a posibles conflictos con otro software.

Aceptamos la licencia y luego seleccionamos la opción que nos interés

Se instalara por defecto al usuario, ahora toca seleccionar el directorio de instalación ( por defecto es el del usuario)

Usar ahora loas opciones recomendadas ( ojo porque pueden venir desmarcadas).

Ya solo pulsamos el boton de instalacion.

Esperamos a que concluya la instalación

Hay problemas conocidos con el uso de caracteres especiales y espacios en la ubicación de instalación, ver por ejemplo #484. Recomendamos a los usuarios instalar en un directorio sin tales caracteres en el nombre.

Sin Miniforge3 en la ruta, la forma más conveniente de usar el software instalado (como los comandos conda y mamba) será a través del «Miniforge Prompt» instalado en el menú de inicio.

Instalación con Mamba

Para instalar nilmtk-contrib en Windows utilizando Mamba, primero necesita tener Anaconda o Miniconda instalado en tu sistema. Luego, puede seguir estos pasos:

Abra Anaconda Prompt o cualquier terminal que tenga configurada con Anaconda o Miniconda.

Cree un nuevo entorno con Mamba. Puede hacerlo con el siguiente comando:

mamba create -n nilmtk-contrib-env python=3.8

Una vez finalizado nos informa como podemos activar o desactivar el nuevo entorno:

Activamos el nuevo entorno:

mamba activate nilmtk-contrib-env

Instalar las dependencias necesarias:


mamba install -c conda-forge numpy pandas matplotlib scipy scikit-learn jupyter

y tras unos minutos habrá terminados

Luego, clonamos el repositorio nilmtk-contrib desde GitHub:


git clone https://github.com/nilmtk/nilmtk-contrib.git


Navegue al directorio clonado:

cd nilmtk-contrib

Instalar nilmtk-contrib utilizando pip:


pip install -e .


Esto debería instalar nilmtk-contrib en su entorno de Anaconda o Miniconda en Windows, pero como vemos en este ejemplo ha dado error, así que es mejor lo podemos intentar sin github desde mamba:

(nilmtk-contrib-env) C:\Users\carlo\nilmtk-contrib>mamba create -n nilm -c conda-forge -c nilmtk nilmtk-contrib

¿que ha pasado? Pues que puede que no tengamos el resto de librerías como keras, cvxpy y nilmtk. Para comprobarlo una vez mas ejecutamos mamba list para comprobarlo :

Si no aparecen ,para instalar cvxpy, keras y nilmtk puede utilizar el gestor de paquetes de Conda o pip. Aquí se muestra cómo hacerlo con mamba:

mamba install -c conda-forge cvxpy

mamba install -c conda-forge keras

mamba install -c nilmtk nilmtk=0.4.3

Ahora ya deberíamos tenerlo todo para intentar repetir la instalación de nilmtk-contrib

Ahora puede importarlo en tus scripts de Python y utilizarlo según sea necesario. Recuerde que algunas de estas instrucciones asumen que ya tiene Git instalado en tu sistema. Si no es así, necesitará instalarlo primero para poder clonar el repositorio de GitHub.

Consulte este notebook para usar los algoritmos nilmtk-contrib, usando la nueva NILMTK-API.

¿Y si persistiese el error?

Aquí tienes algunos pasos adicionales que puedes seguir para intentar resolver este problema:

  1. Verifique la estructura del directorio: Asegúresee de que estás en el directorio correcto que contiene el archivo setup.py. El error sugiere que pip está buscando en nilmtk-contrib/nilmtk_contrib, pero debería estar en nilmtk-contrib solamente.
  2. Revise el archivo setup.py: Si el archivo setup.py no existe en el directorio, necesitará obtenerlo del repositorio oficial o asegurarse de que está en el directorio correcto que contiene dicho archivo.
  3. Instalación manual: Si el archivo setup.py está presente, intente ejecutarlo manualmente con Python para ver si hay algún mensaje de error más detallado:python setup.py install
  4. Ambiente virtual: Asegúrese de que su entorno virtual está activo y que está utilizando la versión correcta de Python para la instalación.
  5. Reinstale nilmtk: A veces, reinstalar nilmtk puede resolver problemas de compatibilidad:pip uninstall nilmtk pip install nilmtk==0.4.3
  6. Consulte la documentación oficial: La guía de instalación de NILMTK puede tener pasos específicos para la instalación que podrían ser útiles.

ARRIBA