可以使用 tf.keras.utils.get_file() 加载本地 zip 文件吗?

Vis*_*uVS 9 keras tensorflow google-colaboratory

我有包含 4 个图像文件夹的 zip 文件。我在 Google Colab 上遵循的教程使用了一个类似的 zip 文件,但该文件是在线托管的,并且链接是作为origin必要参数的值给出的。我将我的 zip 文件上传到了 Google Drive,并且可以在 Colab 中访问它。是否可以使用 get_file() 加载本地文件?

fot*_*nix 8

我最近自己遇到了这个。找不到答案后,只好戴上旧思维帽,解决了。因此,在 tf.keras.utils.get_file() 的文档中,它指出前两个参数是强制性的,其余的可以根据内部结构默认。这些是缓存中用于引用和命名的 FILENAME,以及必须是获取图像/数据的 URL 的ORIGIN 。 myFile = sys.args[1] # just for example... fullPath = os.path.abspath("./" + myFile) # or similar, depending on your scenario data_for_processing = keras.utils.get_file(myFile, 'file://'+fullPath) 古老的“file://”是本地文件技巧的 URL。我希望这可以帮助很多人。


Vis*_*uVS 6

如果您已经挂载了 gdrive 并且可以通过 colab 访问存储在 drive 中的文件,则可以使用路径访问这些文件'/gdrive/My Drive/your_file'。对我来说,我需要解压缩文件,所以我使用

import zipfile
with zipfile.ZipFile(your_file, 'r') as zip_ref:
    zip_ref.extractall(directory_to_extract_to)
Run Code Online (Sandbox Code Playgroud)

我用作'/content'directory_to_extract_to。

然后,您可以按照通常的方式访问数据。

base_dir = '/content/my_folder'    

train_generator = datagen.flow_from_directory(
base_dir,
target_size=(IMAGE_SIZE, IMAGE_SIZE),
batch_size=BATCH_SIZE, 
subset='training')
Run Code Online (Sandbox Code Playgroud)