OSError unable to create file - invalid argument

11,035

When I removed str(f) from the filepath, it worked. f is an Integer and I don't know why it caused the error, but removing it from the string solved my problem.

Let me know if you know exactly why.

Share:
11,035
AIpeter
Author by

AIpeter

Updated on July 13, 2022

Comments

  • AIpeter
    AIpeter almost 2 years

    I am using Python and Keras on top of Tensorflow to train my neural networks. When I switched from Ubuntu 16.04 to Windows 10, my model could not be saved anymore when I run the following:

    filepath = "checkpoint-"+str(f)+model_type+"-"+optimizer_name+"-{epoch:02d}-{loss:.3f}.hdf5"
    checkpoint = ModelCheckpoint(filepath, monitor='loss', verbose=1, save_best_only=True, mode='min')
    callbacks_list = [checkpoint]
    

    and later on:

    model.fit(X, y,
          batch_size=128,
          epochs=1,
          shuffle=False,
          callbacks=callbacks_list)
    

    I get this Error:

    OSError: Unable to create file (Unable to open file: name = 'checkpoint-<_io.textiowrapper name='data/swing-projects100-raw/many-chunks/log-gamma-f3.txt' mode='a' encoding='cp1252'>2l128-adam-0.001-{epoch:02d}-{loss:.3f}.h5', errno = 22, error message = 'invalid argument', flags = 13, o_flags = 302)

    I have Keras 2.0.8 and h5py 2.7.0 installed via conda.

    I tried

    filepath = "checkpoint-"+str(f)+model_type+"-"+optimizer_name+"-{epoch:02d}-{loss:.3f}.hdf5"
    
    with open(filepath, "w") as f:
      f.write("Test.")
    

    and got a similar error:

    OSError: [Errno 22] Invalid argument: "checkpoint-<_io.TextIOWrapper name='data/swing-projects100-raw/many-chunks/log-gamma-f3.txt' mode='a' encoding='cp1252'>2L128-Adam-0.001-{epoch:02d}-{loss:.3f}.hdf5"