Revista 100% Verde

Instalación desde cero de nilmtk en Ubuntu

Por Soloelectronicos @soloelectronico

El NILM o Non-Intrusive Load Monitoring es una técnica computacional para la estimación del consumo individual de diversos dispositivos utilizando para ello la lectura agregada de un único medidor de energía (Smart Meter, SM) . NILMTK es un kit de herramientas de código abierto para el monitoreo de carga no intrusivo (Non-Intrusive Load Monitoring) muy usada en investigación ya que nos permite usando las mismas metricas comparar el rendimiento de difrentes algoritmos para el NILM.

Anaconda es una distribución libre y abierta de los lenguajes Python y R, utilizada en ciencia de datos y aprendizaje automático (machine learning). Esto incluye procesamiento de grandes volúmenes de información, análisis predictivo y cómputos científicos . Tiene como ventaja simplificar la gestión e implementación de paquetes de modo que la instalación de NILMTK se hará por medio de Conda.

Conda es el administrador de paquetes y Anaconda es una distribución que incluye alrededor de cien paquetes que incluyen conda, numpy, scipy, ipython notebook, etc. Conda se opera desde una consola de comandos integrada en Anaconda 2.

En cuanto a la diferencia entre "conda" y "Conda", no hay ninguna. Son el mismo término y se refieren al mismo administrador de paquetes.


Este post se basa en el material proporcionado por el proyecto NILMTK:

Paso 1: Descargar e instalar Conda

Los entornos virtuales hacen que organizar paquetes de Python sea pan comido. Además, el proyecto NILMTK ofrece varias versiones sobre conda-forge.

Primero, desde el propio navegador consiga el software de Anaconda aquí: https://www.anaconda.com/ ( observe que según el sistema operativo se descargara automáticamente una versión diferente).

Instalación desde cero de nilmtk en Ubuntu

Normalmente el fichero de instalación se descargará en la carpeta de Descargas ( ocupa unos 738MB en el momento de escribir este post), así que nos iremos a la carpeta de Descargas y lo ejecutaremos con el comandos bash, para lo cual abriremos una ventana de terminal e iniciaremos la instalación desde la línea de comandos:

cd Descargas/ bash Anaconda3-2022.10-Linux-x86_64.sh 

Se le guiará a través de varios pasos así que ponga atención, primero aceptando la licencia (escribiendo "yes") y luego confirmando la instalación en la carpeta donde se instalará (por defecto se realizará en /home/usuario/anaconda3) pulsando "Enter". Finalmente tras unos 10 minutos nos preguntara si deseamos inizializar Anaconda 3 ejecutando conda init(contestaremos "yes")

Una vez concluida la instalación de Conda, cerraremos el terminal y nos volvermos abrir una nueva ventana donde deberíamos probar la instalación ejecutando el comando conda en el símbolo del sistema:

Si todo ha ido bien debe responder con los parámetros y opciones que son posibles desde linea de comandos:

usage: conda-script.py [-h] [-V] command ... conda is a tool for managing and deploying applications, environments and packages. Options: positional arguments: command clean Remove unused packages and caches. compare Compare packages between conda environments. config Modify configuration values in .condarc. This is modeled after the git config command. Writes to the user .condarc file (C:\Users\carlo\.condarc) by default. create Create a new conda environment from a list of specified packages. help Displays a list of available conda commands and their help strings. info Display information about current conda install. init Initialize conda for shell interaction. [Experimental] install Installs a list of packages into a specified conda environment. list List linked packages in a conda environment. package Low-level conda package utility. (EXPERIMENTAL) remove Remove a list of packages from a specified conda environment. uninstall Alias for conda remove. run Run an executable in a conda environment. [Experimental] search Search for packages and display associated information. The input is a MatchSpec, a query language for conda packages. See examples below. update Updates conda packages to the latest compatible version. upgrade Alias for conda update. optional arguments: -h, --help Show this help message and exit. -V, --version Show the conda version number and exit. conda commands available from other packages: build content-trust convert debug develop env index inspect metapackage render repo server skeleton token verify

Asimismo debería estar disponible el entorno de Jupyter, para lo cual escribiremos desde la línea de comandos del terminal:

jupyter notebook

Esto nos abrirá una ventana de navegador en el navegador por defecto en localhost:8888/tree y podremos acceder a los cuadernos de jupyter notebook que tengamos en el disco.

NOTA :En caso de que el comando conda resulte en "un error de intérprete incorrecto" (es decir, no hay tal error de archivo o directorio), aplique la siguiente corrección:

cd /inicio/usuario/
nano .bashrc

Agregue la línea:

export PATH=~/anaconda3/bin:$PATH

Guarde los cambios en el archivo .bashrc y, finalmente, ejecute el comando:

source .bashrc

Felicidades, acaba de instalar Conda.

Paso 2: Instalación de NILMTK


Abra una ventana de terminal, cree un nuevo entorno Conda y actívelo:

conda create --name nilmtk-env
conda activate nilmtk-env

Si aún no está presente en la instalación de Conda, agregue conda-forge a la lista de canales:

conda config --add channels conda-forge
conda install matplotlib=3.3.2

Igualmente previa a la instalación, puede instalar Pandas para evitar problemas posteriores.

conda install pandas

Finalmente, instale la última versión de NILMTK de conda-forge. Observe que el signo igual no lleva espacios (piense que estamos usando Python) .

conda install -c nilmtk nilmtk=0.4.3


Esto puede llevar un tiempo. Mientras tanto, eche un vistazo a otros paquetes en Forge de NILMTK.

POSIBLES ERRORES:

Desde el repositorio nilmtk en anaconda ( https://anaconda.org/nilmtk/repo ) descargar los archivos .tar.bz2 para su arquitectura tanto para el paquete de metadatos nilm ( https://anaconda.org/nilmtk/nilm_metadata/files) como para el paquete nilmtk ( https://anaconda.org/nilmtk/nilmtk/files)

Luego, ejecute conda desde el directorio home los comandos install nilmtk-X.X.X-py_0.tar.bz2 y conda install nilm_metadata-X.X.X.tar.bz2 con las X como el número de versión del paquete que quiere instalar.

Obsérvese que para NILMTK se han retirado las versiones 0.4.2 y 0.4.1 y solo se mantiene la actual (0.4.3) y la 0.3.2.

Instalación desde cero de nilmtk en Ubuntu

Para los metadatos debemos observar esta vez el SO donde lo vamos a instalar:

Instalación desde cero de nilmtk en Ubuntu

  • Abre una ventana de terminal (puedes abrir una ventana de terminal presionando Ctrl + Alt + T en su teclado).
  • Actualiza la lista de paquetes ejecutando el siguiente comando para actualizar la lista de paquetes: sudo apt-get update
  • Instale Git una vez que se haya actualizado la lista de paquetes, ejecutando el siguiente comando para instalar Git: sudo apt-get install git
  • Este comando descargará e instalará la última versión de Git en tu sistema.
  • Verifique la instalación para comprobar que Git se ha instalado correctamente, ejecute el siguiente comando:git -version
  • Este comando debería imprimir el número de versión de Git instalado en tu sistema

Ya podemos instalar el repositorio nilm_metadata con el git, pero tenga en cuenta que la versión de Python debe ser exactamente la 3.8o la 3.9 . Además, tienes que instalar nilmtk-metadata de la siguiente manera para lo cual ejecute el siguiente comando:

pip install git+https://github.com/nilmtk/[email protected]

Paso 3: Agregar un kernel de Jupyter

Básicamente, NILMTK ahora está instalado en su ordenador, para lo cual puede comprobar que todo esta en su lugar con el siguiente comando.

(nilmtk-env) C:\Users\carlo>conda list nilmtk # packages in environment at C:\Users\carlo\anaconda3\envs\nilmtk-env: # # Name Version Build Channel nilmtk 0.4.3 py_0 nilmtk 

El siguiente paso implica cuadernos de Jupyter. Trabajar con Jupyter abre muchas posibilidades y se dice que es una herramienta imprescindible. Por lo tanto, agregue el entorno NILMTK a Jupyter:

python -m ipykernel install --user --name nilmtk-env --display-name "Python (nilmtk-env)"
mkdir nilmtk_test/
cd nilmtk_test/
wget https://raw.githubusercontent.com/nilmtk/nilmtk/master/data/random.h5

A continuación, arranque Jupyter:

jupyter notebook

Para probar la instalación, intente importar el conjunto de datos aleatorio con NILMTK y trace todos los medidores:

MeterGroup(metros=
ElecMeter(instance=1, building=1, dataset=None, appliances=[])
ElecMeter(instance=2, building=1, dataset=None, appliances=[])
ElecMeter(instance=3, building=1, dataset=None, appliances=[])
ElecMeter(instance=4, building=1, dataset=None, appliances=[])
ElecMeter(instance=5, building=1, dataset=None, appliances=[])
)

¡Felicidades! Lo ha logrado. ¡NILMTK parece funcionar según lo previsto!


Volver a la Portada de Logo Paperblog