在googlecloud storag上保存模型历史

2024-04-20 03:58:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我在谷歌人工智能平台上运行一个tensorflow作业。模型训练好后我想保存模型历史归档。因为我需要写一个云存储桶,所以我使用tf.io.write\文件. 我尝试了以下方法:

hist=mymodel.fit(training_dataset_input,epochs=num_epochs,steps_per_epoch=int(training_samples/batch_size),validation_data=validation_dataset_input,validation_steps=1,verbose=1,callbacks[mycallbacks,tensorboard_cb,csv_logger])

tf.io.write_file(gs://<nameofbucket>/<nameoffile>,hist.history)

我收到以下错误消息:

ValueError: Attempt to convert a value ({'loss': [355.3313500958558, 313.9355358472616], 'mean_squared_error': [355.3312, 313.93536], 'find_rms': [14.733875, 13.815437], 'val_loss': [292.5752868652344, 270.8216857910156], 'val_mean_squared_error': [292.5753, 270.8217], 'val_find_rms': [13.506351, 12.935535]}) with an unsupported type (<class 'dict'>) to a Tensor.

看起来hist.history是一个字典,字符串作为键,列表作为值。如何以正确的格式获取hist.history,以便使用tf.io.write_file将其写入文件?你知道吗


Tags: 文件io模型inputtftrainingvalsteps
3条回答

The docs假设arg'contents'应该是string类型的张量。标量。你知道吗

我可以想到以下几点: 如果您只想用TF库存储您的历史,并且之后不再执行任何处理,那么可以使用json.dumps文件从dict中获取一个字符串并保存它。你知道吗

另一方面,您可以使用Python Store objects to GCS Buckets via API,因此不需要额外的处理。你知道吗

谢谢你的回答。我找到了你的答案。为了将任何字符串写入文件并按我喜欢的格式格式化,我可以使用:

with tf.io.gfile.GFile(gs://<bucket>/<filename>,"w") as file:
        file.write(<any string object>)

它还起到了以下作用:

json.dumps(str(hist.history))

我需要将整个历史对象转换为一个字符串,因为它包含浮点数。你知道吗

您可以尝试使用this将字典转换为列表,然后保存它(this can help)。你知道吗

如果您想方便地可视化保存的数据,可以将其保存为csv(this can help)。你知道吗

希望它能适合你的问题!你知道吗

相关问题 更多 >