我有一个包含4个图像文件夹的zip文件。我在Google Colab上遵循的教程使用了类似的zip文件,但该文件是在线托管的,并且链接以必要的origin
参数的值给出。我将zip文件上传到Google云端硬盘,并可以在Colab。可以使用get_file()加载本地文件吗?
答案 0 :(得分:4)
我最近自己遇到了这个问题。找不到答案后,只好戴上旧思维帽,解决了。
因此,在 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。
我希望这可以帮助很多人。
答案 1 :(得分:3)
get_file()用于从URL加载文件,因此无法加载本地文件。如果已安装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)
我使用'/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')