-1

I get a string selected_optimizer from HTML form

selected_optimizer = str(request.form['optimizer'])
print(selected_optimizer) #AdamOptimizer

I recall function

import tensorflow as tf

train_model(
    my_optimizer=tf.train.AdamOptimizer(learning_rate=0.05))

Is it possible to convert string as a Class name and get something like this:

train_model(
    my_optimizer=tf.train.selected_optimizer(learning_rate=0.05))
Hevex
  • 1
  • 2

2 Answers2

2

Use a dictionary.

optimizers = {
    "AdamOptimizer": tf.train.AdamOptimizer,
    "OtherOptimizer": ....,
}
selected_optimizer = optimizers[request.form['optimizer']]
train_model(my_optimizer=selected_optimizer(learning_rate=0.05))
Daniel Roseman
  • 588,541
  • 66
  • 880
  • 895
1
import tensorflow as tf

selected_optimizer = str(request.form['optimizer'])
print(selected_optimizer) #AdamOptimizer

eval("train_model(my_optimizer=tf.train."+selected_optimizer+"(learning_rate=0.05))")

using eval is easier than this. according to me

def AdamOptimizer():
    print("hi")

strr="AdamOptimizer"

eval(strr+'()')
Jainil Patel
  • 1,284
  • 7
  • 16