Colab が圧縮パッケージを解凍し、空でないフォルダーを削除する方法

Colaboratory (通称「Colab」) は、Google Research チームによって開発されました。誰でもブラウザを介して任意の Python コードを作成および実行でき、特に機械学習、データ分析、教育目的に適しています。Colab は、ユーザーがセットアップせずに直接使用でき、GPU/TPU コンピューティング リソースを無料で使用できるマネージド Jupyter ノートブック サービスです。[ファイル] メニューから [ノートブックのアップロード] を選択して、既存の Jupyter/IPython ノートブックをインポートします。Colab ノートブックは Google ドライブに保存されるか、GitHub からロードされます。詳細については、ドキュメント colaboratory を参照してください

質問 1: Colab は CIFAR-10 データセットを解凍します

Colab の GPU をディープ ラーニング トレーニングに使用する場合、CIFAR-10 が提供する公式データセットを使用してトレーニングするのが簡単で、ファイル数も少なく、解凍ツールなしで簡単に実行できます。55M の写真が 60,000 枚あると、解凍に 1 日かかることがあります (個人的なテストでは下図の方法を使用し、30,000 枚の写真を解凍するのに約 8 時間かかりました)。
ここに画像の説明を挿入

質問 2: Colab は空ではないフォルダーの削除をサポートしていません

解凍したばかりのデータセットを削除したい場合はどうすればよいでしょうか? 1 枚の写真を 1 枚削除しますか? そうなると座るのも遅くなります。

一般的な解決策: Python スクリプト

結局のところ、Colab は Python 環境を提供し、Python スクリプトを実行することができ、Python スクリプトを使用することで必要な機能を実現できることが多く、上記 2 つの問題に加えて、この観点から他の問題も検討できます。

まず Google ハードドライブをロードし、知らない場合は Baidu をロードします。
ここに画像の説明を挿入

問題 1 の解決策: unzip コマンド

!unzip "/content/drive/MyDrive/Colab Notebooks/ResNet18/data.zip" -d "/content/drive/MyDrive/Colab Notebooks/ResNet18/"

ディレクトリを独自のディレクトリに置き換えます (コマンドを実行する前に必ずパスを確認してください)。
ここに画像の説明を挿入
この方法は非常に高速で、6w の画像はわずか数分で解凍されます。
ここに画像の説明を挿入

問題 2 の解決策: 空ではないフォルダーを再帰的に削除する

コードを直接アップロードするだけで、ディープラーニングに携わるすべての人がこれらの基礎知識を理解する必要があります。

import os
# os.listdir('/content/drive/MyDrive/Colab Notebooks/ResNet18/data')
# os.remove(f'/content/drive/MyDrive/Colab Notebooks/ResNet18/data/')

def rmdir(dir):
    #判断是否是文件夹,如果是,递归调用rmdir()函数
    if(os.path.isdir(dir)):
        #遍历地址下的所有文件及文件夹
        for file in os.listdir(dir):
            #进入下一个文件夹中进行删除
            rmdir(os.path.join(dir,file))
        #如果是空文件夹,直接删除
        if (os.path.exists(dir)):
            os.rmdir(dir)
            print(dir,"文件夹删除成功!")
    #如果是文件,直接删除
    else:
        if(os.path.exists(dir)):
            os.remove(dir)
            print(dir,"文件删除成功!")
#调用定义函数(路径换成自己的,最好自己先找个废目录测试一下!)
rmdir("/content/drive/MyDrive/Colab Notebooks/ResNet18/data")

空ではないディレクトリを数秒で削除します。
ここに画像の説明を挿入


おすすめ

転載: blog.csdn.net/apple_51931783/article/details/130819873