Mostrar los tags: Python3

Mostrando del 21 al 30 de 79 coincidencias
Se ha buscado por el tag: Python3
Imágen de perfil

PerceptrónSimple


Python

Publicado el 27 de Julio del 2019 por Fernando
8.552 visualizaciones desde el 27 de Julio del 2019
MODELO DE PERCEPTRON SIMPLE
Los perceptrones son tipos de redes neuronales, las neuronal network más simples que existen. El modelo de perceptrón simple permite realizar una clasificación binaria de dos clases linealmente separables. Cada clase puede contener diferentes variables (X1 … Xn), cada una de estas variables supone una entrada a la red neuronal. Cada entrada se asocia a un determinado peso (W1 … Wn), el sumatorio del producto de cada entrada por su correspondiente peso nos da un valor, Z (z= Σ Xn*Wn ). Las diferentes entradas convergen en una misma neurona, esta representa la neurona de salida y tendrá un determinado umbral de activación, Y. Si el valor Z es mayor que el umbral de activación (Y) la neurona se activará y clasificará una clase como positiva, si por el contrario el valor Z no supera el umbral de activación Y, la neurona no se activará y clasificará la clase como negativa. El modelo de perceptrón simple requiere de un entrenamiento supervisado, es decir, para cada conjunto de valores le indicamos a que clase pertenecen dichos valores. De esta forma, cada vez que se equivoque al clasificar un conjunto de valores, se podrán ajustar los diferentes pesos W. A medida que esta red se va entrenando siempre convergerá en una solución, siempre y cuando, las dos clases sean LINEALMENTE SEPARABLES.
A continuación, vamos con un programa sumamente sencillo. En este programa, las dos clases contienen 4 variables las cuales, corresponden a números aleatorios en coma flotante comprendidos entre 0 y 1. Aparecen ajustados los intervalos (en la función al() ) para que ambas clases sean linealmente separables ya que si no, el programa nunca encontrará una solución. Los pesos del perceptrón han sido iniciados aleatoriamente en el intervalo de 0 a 0.5. Como mencioné anteriormente, se trata de un tipo de aprendizaje supervisado, por ello, para cada conjunto de datos se indica la clase a la que pertenece. Una vez que tenemos los datos a clasificar y los pesos del perceptrón inicializados aleatoriamente, el siguiente paso consiste en ajustan los pesos. Estos pesos se ajustarán solo cuando el clasificador falle siguiendo la función de entrenamiento (o algoritmo de aprendizaje)  Wt+1 = Wt + (0 - Z)*Xn . Si el clasificador acierta la clase los pesos no se corrigen. Tras el entrenamiento el clasificador (en este caso en dos o tres ciclos) alcanza un rendimiento del 100%, de forma que todos los conjuntos de datos pertenecientes a la Clase 1 tienen un valor de Z > Y (superan el umbral de activación) y todos los datos pertenecientes a la Clase 2 tienen un valor de Z < Y (inferiores al umbral de activación).
Se trata de un algoritmo muy muy sencillo que representa el potencial de la Inteligencia Artificial en el análisis de datos. El umbral de activación o más formalmente la función de activación corresponde a la función más sencilla posible, la función escalón de McCulloch y Pitts. Estoy disponible para cualquier duda o sugerencia. Se que esto es un ejemplo sencillo, estaba practicando, diseñé e hice el programa en menos de una hora y decidí compartirlo por si a alguien le interesaba un poco el tema haciendo una mini-explicación.
Imágen de perfil

Mostrar el tiempo en formato entendible


Python

Actualizado el 8 de Julio del 2019 por Joel (150 códigos) (Publicado el 19 de Diciembre del 2018)
1.641 visualizaciones desde el 19 de Diciembre del 2018
Esta clase puede recibir milisegundos, segundos, minutos y horas, y devuelve una cadena con un formato mas entendible.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
obj=timeHuman()
 
obj.reset().setMiliseconds(2000)
print(obj.getTimeHuman())
# devolverá: 2 seconds
 
obj.reset().setSeconds(1480)
print(obj.getTimeHuman())
# devolverá: 24 minutes and 40 seconds
 
obj.reset().setMinutes(60)
print(obj.getTimeHuman())
# devolverá: 1 hour
 
obj.reset().setHours(3)
print(obj.getTimeHuman())
# devolverá: 3 hours
 
obj.reset().setHours(30).setSeconds(1480).setMiliseconds(2000)
print(obj.getTimeHuman())
# devolverá: 1 day, 6 hours, 24 minutes and 42 seconds
 
obj.reset().setSeconds(1441)
print(obj.getTimeHuman())
# devolverá: 24 minutes and 1 second
Imágen de perfil

Clase para configurar el archivo dhcpd.conf de nuestro servidor


Python

estrellaestrellaestrellaestrellaestrella(1)
Publicado el 26 de Junio del 2019 por Xavi (548 códigos)
1.722 visualizaciones desde el 26 de Junio del 2019
Clase para gestionar el archivo dhcpd.conf de nuestro servidor

readFile() -> lea el archivo dhcpd recibido en el constructor y ponga los datos en dos listas
getValue() -> devuelve el valor de la clave recibida
setValue() -> actualizar el valor si existe o agregar un nuevo valor si no existe
removeValue() -> eliminar valores
clearSubnet() -> elimina las subredes creadas o leídas del archivo
newSubnet() -> crea una nueva subred
getSubnetNumber() -> devuelve el número de subredes
getSubnetValue() -> devuelve el valor de la subred indicada
setSubnetValue() -> agregar o actualizar valores de la subred
guardar() -> guardar cualquier cambio en el archivo

Un archivo de configuración es similar a:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
option domain-name "example.org";                               getValue(), setValue()
option domain-name-servers ns1.example.org, ns2.example.org;    getValue(), setValue()
default-lease-time 600;                                         getValue(), setValue()
max-lease-time 7200;                                            getValue(), setValue()
subnet 10.5.5.0 netmask 255.255.255.224 {                       getSubnetNumber(), newSubnet(), clearSubnet(), getSubnetValue()
    range 10.5.5.26 10.5.5.30;                                  setSubnetValue(), getSubnetValue()
    option domain-name-servers ns1.internal.example.org;        setSubnetValue(), getSubnetValue()
    option domain-name "internal.example.org";                  setSubnetValue(), getSubnetValue()
    option routers 10.5.5.1;                                    setSubnetValue(), getSubnetValue()
    option broadcast-address 10.5.5.31;                         setSubnetValue(), getSubnetValue()
    default-lease-time 600;                                     setSubnetValue(), getSubnetValue()
    max-lease-time 7200;                                        setSubnetValue(), getSubnetValue()
}
subnet 10.10.10.0 netmask 255.255.255.0 {                       getSubnetNumber(), newSubnet(), clearSubnet(), getSubnetValue()
    range 10.10.10.200 10.10.10.230;                            setSubnetValue(), getSubnetValue()
    option domain-name-servers 8.8.8.8;                         setSubnetValue(), getSubnetValue()
    option domain-name "internal.example.org";                  setSubnetValue(), getSubnetValue()
    option routers 10.10.10.1;                                  setSubnetValue(), getSubnetValue()
    option broadcast-address 10.10.10.255;                      setSubnetValue(), getSubnetValue()
}
Imágen de perfil

Clase para configurar la red en Linux


Python

estrellaestrellaestrellaestrellaestrella(1)
Publicado el 27 de Junio del 2019 por Xavi (548 códigos)
1.064 visualizaciones desde el 27 de Junio del 2019
Clase que permite leer y escribir los archivos de configuración de las interfaces alojados en /etc/network/interfaces.d/

checkInterfacesSource() - Comprueba si el archivo de interfaces tiene una fuente ....
readFiles() - Lee todos los archivos en la carpeta /etc/network/interfaces.d/ y llena el diccionario
getValue() - Obtiene el valor de la interfaz
setValue() - Actualizar o agregar valor
createIface() - crea un iface .... (iface eth0 inet static)
getValueIface() - Obtiene el valor del iface
setValueIface() - Actualizar o agregar un valor en iface
removeIFace() - Eliminar iface
removeInterface() - Eliminar el archivo de la interfaz
save() - Guarda cualquier cambio en los archivos

Un archivo de configuración es similar a:
1
2
3
4
5
6
7
8
auto eth0                       getValue(), setValue()
allow-hotplug eth0              getValue(), setValue()
iface eth0 inet static          createIface(), getValueIface()
    address 192.168.0.102       getValueIface(), setValueIface()
    netmask 255.255.255.0       getValueIface(), setValueIface()
    network 192.168.0.0         getValueIface(), setValueIface()
    broadcast 192.168.0.255     getValueIface(), setValueIface()
    gateway 192.168.0.2         getValueIface(), setValueIface()
Imágen de perfil

Clase para obtener información de la red sobre Linux


Python

estrellaestrellaestrellaestrellaestrella(1)
Actualizado el 27 de Junio del 2019 por Xavi (548 códigos) (Publicado el 21 de Junio del 2019)
3.276 visualizaciones desde el 21 de Junio del 2019
Clase para obtener información de nuestras tarjetas de red

getInterfaces() -> devuelve todas las interfaces de nuestro sistema
interfaceIsDhcp() -> devuelve true si la interfaz está configurada para obtener la red desde el servidor dhcp
getMac() -> devuelve la dirección MAC de la interfaz
getIp() -> devuelve la dirección ip de la interfaz
getGateway() -> devuelve la dirección de la puerta de enlace de la interfaz
getDNS() -> devuelve una lista con los DNS de la interfaz interna
getBroadcast() -> devuelve la dirección de transmisión de la interfaz
getState() -> devuelve una cadena con el estado de la interfaz

Esta probado sobre Debian/Ubuntu
Imágen de perfil

Ejecutar el contenido de una cadena


Python

Publicado el 26 de Abril del 2019 por Joel (150 códigos)
1.511 visualizaciones desde el 26 de Abril del 2019
Utilización de la instrucción exec() para ejecutar el contenido de una cadena
En este ejemplo, se ejecuta una función para sumar los valores comprendidos entre dos números.