es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Entrada de Python para usar como argumento de función.

Tengo una clase para la cual me gustaría controlar el argumento de entrada desde una terminal.

La clase se relaciona con el aprendizaje automático y se llama keras.layers.LSTM(). Tiene un argumento de entrada llamado bias_regularizer, que toma como entrada un objeto regulizador l1 o l2, que importo de una biblioteca de keras. Me gustaría establecerlo de esta manera:

keras.layers.LSTM(bias_regularizer=l1(0.01)) #Funciona bien cuando está codificado

Pero cuando intento definirlo como una x, y darlo como entrada falla, ya que la entrada convierte la entrada del usuario en una cadena.

x = input(‘parámetro de entrada: ‘) #Ingresa l1(0.01) desde la terminal
keras.layers.LSTM(bias_regularizer=x) #Falla porque x es una cadena

Este método funciona bien para otros argumentos de la clase keras.layers.LSTM, donde la entrada es una cadena o un entero (uso int(input()) para convertirlo), pero falla aquí.

¿Hay alguna manera de que pueda ignorar el tipo de datos de la entrada y pasar mi entrada a la función como si la hubiera escrito yo mismo? Espero que la pregunta tenga sentido.

El enlace a la clase LSTM se puede encontrar aquí: https://keras.io/api/layers/recurrent_layers/lstm/

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una manera de pasar la entrada a la función como si la hubieras escrito tú mismo sin preocuparte por el tipo de datos. Puedes hacer uso de la función eval() que toma una cadena como entrada y la evalúa como si fuera una expresión de Python.

    En tu caso, puedes modificar tu código de la siguiente manera:

    x = input('parámetro de entrada: ')
    keras.layers.LSTM(bias_regularizer=eval(x))
    

    Esto evaluará la cadena x y la pasará como argumento al parámetro bias_regularizer. Sin embargo, debes tener cuidado con eval() ya que puede ejecutar cualquier código que se le pase, así que asegúrate de usarlo solo cuando confíes en la fuente de la entrada.

    Además, vale la pena señalar que el uso de la regularización es opcional y no siempre es necesario utilizarla. Considera si es apropiada o no para tu caso de uso antes de implementarla.

Comments are closed.