Como instalar nilmtk-contrib y no morir en el intento


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.

Que hacer con la bateria hinchada de un movil


Una batería hinchada en un móvil es un problema serio que no debe ser ignorado. Aunque el dispositivo pueda seguir funcionando normalmente por un tiempo, la situación solo empeorará con el uso continuo. La hinchazón de la batería es un proceso irreversible y el riesgo asociado con ella aumenta con el tiempo..

Una batería inflada no es exactamente una bomba de relojería, pero el riesgo de incendio es real y lo mejor es que atajes el problema lo antes posible y hasta entonces minimices el uso del dispositivo o no lo dejes nunca sin supervisar.

Por qué se hincha la batería del móvil

Bateriamovil

Las baterías de litio generan energía mediante una reacción química que con el tiempo puede dejar de completarse correctamente. Como resultado, cuando cargas una batería de litio defectuosa, el proceso genera gas además de energía. Este gas se va acumulando con cada carga y como las baterías están cerradas herméticamente, el gas generado se queda atrapado en la batería. La «buena» noticia es que las baterías son hasta cierto punto flexibles, hinchándose como un globo y, por tanto, nos dan cierto tiempo de reacción antes de que la cosa vaya a mayores.

Entre los motivos por los cuales una batería puede inflarse se encuentran la sobrecarga, la mala calidad de sus componentes, las temperaturas altas o que los electrodos hayan sido dañados durante la fabricación o accidentalmente. A veces no parece haber ningún motivo aparente, salvo el paso del tiempo. Un buen modo de reducir los riesgos es usar siempre el cargador oficial del móvil.

Las principales causas de que se hinche la batería del móvil son:

A continuación algunos de las posibles causas por las que se pueda hinchar la bateria de un movil, tableta o dispositivo electrónico:o

1. Degradación de la batería: Con el tiempo, las baterías de litio, que son las más comunes en los móviles, se van degradando. Esto significa que pierden capacidad y su rendimiento disminuye. En algunos casos, esta degradación puede provocar que la batería se hinche. Esto se debe a que la reacción química que genera energía en la batería se vuelve menos eficiente y produce gas como subproducto.

2. Daños físicos: Los golpes, caídas o perforaciones en la batería pueden provocar que se hinche. Esto se debe a que el daño puede romper los separadores internos de la batería, lo que permite que los componentes entren en contacto entre sí y generen una reacción química peligrosa.

3. Defectos de fabricación: En algunos casos, las baterías pueden hincharse debido a defectos de fabricación. Esto puede deberse a problemas con los materiales utilizados en la batería o a errores en el proceso de fabricación.

4. Sobrecarga: La sobrecarga de la batería también puede provocar que se hinche. Esto se debe a que el exceso de energía puede generar calor y presión, lo que puede dañar los componentes internos de la batería.

5. Temperaturas extremas: Exponer la batería a temperaturas extremas, tanto altas como bajas, también puede provocar que se hinche. Esto se debe a que las temperaturas extremas pueden dañar los componentes internos de la batería.

Qué hacer si la batería del móvil se hincha:

Si la batería del móvil se hincha, es importante tomar medidas de inmediato:

  • Apaga el móvil :apagar el móvil es el primer paso y el más importante cuando se detecta una batería inflada. Es una medida de precaución esencial para evitar cualquier riesgo de daño o incendio. Las notificaciones y el uso habitual pueden esperar, ya que la seguridad es lo primero. La acumulación de gases en la batería puede alcanzar un punto crítico sin previo aviso, y cualquier presión adicional, como forzar el móvil en una carcasa ajustada, puede ser peligrosa. Si la batería se perfora, podría liberar gases o, en el peor de los casos, provocar un incendio. Por lo tanto, es vital manejar el dispositivo con cuidado y buscar asistencia técnica lo antes posible
  • Desconéctalo del cargador. Como comentábamos antes, cuando la batería ha llegado a un punto en el que su carga libera y acumula gases, no hay vuelta atrás. Esto quiere decir que cuanto más se use y más se cargue, más gases se van a liberar y más se va a inflar.Si bien no debe cundir el pánico, lo mejor es que trate la situación con la gravedad que se merece y trate el móvil como si estuviera temporalmente no disponible. Busque un móvil de sustitución mientras solucionas la papeleta.
  • No presionar para intentar liberar el gas :Es importante resistir la tentación de presionar una batería hinchada. Aunque pueda parecer un acto inofensivo, hacerlo puede tener consecuencias graves:
    • Perforación de la batería: Si la batería se perfora, se liberarán los gases acumulados, lo que podría ser peligroso.
    • Riesgo de incendio: La liberación súbita de gases puede provocar un incendio, especialmente si hay una fuente de ignición cerca.
    • Daño a otros componentes: Presionar la batería hinchada puede dañar otros componentes del móvil, como la pantalla, que no están diseñados para soportar esa presión.
    • Lo mejor es mantener la calma, no aplicar presión y buscar asistencia técnica profesional para resolver el problema de manera segura
  • Retire la batería del móvil con cuidado, si es posible.
  • No use el móvil hasta que no hayas reemplazado la batería.
  • Lleve la batería hinchada a un centro de reciclaje de residuos electrónicos.

Es importante no intentar reparar una batería hinchada, ya que esto puede ser peligroso. De hecho hay personas que han tenido problemas al «pinchar» el contenedor de aluminio con una aguja pare que se pierda el hinchazón, pero a cambio se libera el gas que puede ser muy tóxico si se inhala, y aun peor, si se perfora por error también el interior puede fácilmente explotar , así que no realice esa maniobra pues no vamos a reparar nada y podemos poner en riesgo nuestra integridad.

Si su móvil tiene una batería extraíble, retirarla con cuidado es una buena medida de seguridad en caso de hinchazón. Aquí dejamos algunos pasos para hacerlo de manera segura:

  1. Apague el móvil: Antes de intentar retirar la batería, asegúresee de que el móvil esté completamente apagado.
  2. Prepare un lugar seguro: Elija una superficie plana y limpia para trabajar y asegúrese de que no haya objetos metálicos cerca.
  3. Utilize herramientas adecuadas: Si es necesario, usa herramientas no conductoras, como palancas de plástico, para ayudarle a retirar la batería sin dañar el móvil.
  4. Retira la tapa trasera: Con cuidado, retire la tapa trasera del móvil para acceder a la batería.
  5. Desconecte la batería: Si hay algún conector o clip que sujete la batería, desconéctelo con cuidado.
  6. Extráigala batería: Levante la batería por los bordes, evitando presionar o doblarla, y retírela del móvil.

Importante: Si la batería está muy hinchada o si no se siente seguro al realizar estos pasos, es mejor llevar el móvil a un servicio técnico profesional. Además, recuerde que las baterías hinchadas deben ser desechadas de manera responsable, siguiendo las normativas locales de reciclaje de baterías para evitar daños al medio ambiente y a la salud pública.

Si su móvil no tiene una batería extraíble, no intente retirarla usted cmismo, ya que esto podría ser peligroso. En este caso, lo mejor es llevar el dispositivo a un técnico cualificado para que realice el trabajo de manera segura.

Si es un dispositivo que ya no vamos a usar y lo vamos a intentar a usar en otra utilidad ( por ejemplo como reloj o calendario con previsión del tiempo) , como vimos em este post podemos eliminar la bateria y alimentarlo directamente con 5v DC acoplando un pequeño condensador electrolítico por supuesto respetando la polaridad de ambos.

8be6ba70 822f 4ff9 983a 528bc74cb7a1
1

Cómo prevenir que la batería del móvil se hinche:

Para prevenir que la batería del móvil se hinche, puedes seguir estos consejos:

  • Use el cargador original del móvil.
  • No cargue el móvil durante la noche.
  • No deje permanentemente el cargador conectado al movil
  • Evite exponer el móvil a temperaturas extremas.
  • No golpee y evite caidas el móvil.
  • Reemplaze la batería del móvil cuando sea necesario.

Siguiendo estos consejos, pueden ayudarle a prolongar la vida útil de la batería del móvil y evitar que se hinche.