Search code examples
pythonkeras

Keras rename model and layers


1) I try to rename a model and the layers in Keras with TF backend, since I am using multiple models in one script. Class Model seem to have the property model.name, but when changing it I get "AttributeError: can't set attribute". What is the Problem here?

2) Additionally, I am using sequential API and I want to give a name to layers, which seems to be possibile with Functional API, but I found no solution for sequential API. Does anonye know how to do it for sequential API?

UPDATE TO 2): Naming the layers works, although it seems to be not documented. Just add the argument name, e.g. model.add(Dense(...,...,name="hiddenLayer1"). Watch out, Layers with same name share weights!


Solution

  • Doesn't work any more as per tf2+

    Your first problem about the model name is not reproducible on my machine. I can set it like this. many a times these errors are caused by software versions.

    model=Sequential()
    model.add(Dense(2,input_shape=(....)))
    model.name="NAME"
    

    As far as naming the layers, you can do it in Sequential model like this

    model=Sequential()
    model.add(Dense(2,input_shape=(...),name="NAME"))
    

    Latest solution

    use _name