When I use Google Colaboratory, how to save image, weights in my Google Drive? When I use Google Colaboratory, how to save image, weights in my Google Drive? python-3.x python-3.x

When I use Google Colaboratory, how to save image, weights in my Google Drive?


You need to mount google drive to your Colab session.

from google.colab import drivedrive.mount('/content/gdrive')

Then you can simply write to google drive as you would to a local file system like so:

with open('/content/gdrive/My Drive/file.txt', 'w') as f:  f.write('content')


To save the weight you can run the following after training.

saver = tf.train.Saver()save_path = saver.save(session, "data/dm.ckpt")print('done saving at',save_path)

Check the location where the ckpt files were saved.

import osprint( os.getcwd() )print( os.listdir('data') )

Finally download the file!

from google.colab import filesfiles.download( "data/dm.ckpt.meta" ) 


Take a look at the example on interfacing with external files. The general workflow is to output the file to the cloud environment, then download it.

Let's output the plot from the "Hello, Colaboratory" example to a file. I made a copy of the notebook to my Google Drive and ran the following commands:

import matplotlib.pyplot as pltimport numpy as npx = np.arange(20)y = [x_i + np.random.randn(1) for x_i in x]a, b = np.polyfit(x, y, 1)f = plt.figure()_ = plt.plot(x, y, 'o', np.arange(20), a*np.arange(20)+b, '-')f.savefig( "test.png")

If we list the files in the Google Collaboratory environment, we will see test.png among them:

import osprint( os.getcwd() )print( os.listdir() )# /content# ['datalab', '.local', '.config', '.forever', '.cache', '.rnd', 'test.png', '.ipython']

All that's left to do is download it to my local machine using the example I linked at the beginning on this answer:

from google.colab import filesfiles.download( "test.png" )    

Finally, if you really need the files on Google Drive instead of your local machine, you can use the Google Drive API to move the files accordingly.

P.S. If you don't like writing files to /content, you can always create a subdirectory and os.chdir() into it, but keep in mind that this subdirectory is still local to your cloud environment and requires you to download files as above.