---
# System prepended metadata

title: 如何取出 MMCV 格式下的DataContainer資料

---

# [教學] 如何取出 MMCV 格式下的DataContainer資料

:::info
正常取會有問題
![image](https://hackmd.io/_uploads/H1TWpol3p.png)



:::

## :question: Purpose
:::success
目前在網路上沒有找到有人教學怎麼單獨解析出mmcv相關專案下的DataContainer 資料，所以來寫一篇
:::


## :feet: Step
1. 確認NuScenes設定dataloader取出後
  ![image](https://hackmd.io/_uploads/H1g8-ne3a.png)
  
2. 取出dataser[0]，這是為了取出資料
  ![image](https://hackmd.io/_uploads/BkuqZ3ena.png)  
  
      ![image](https://hackmd.io/_uploads/SJjkGhg3a.png)

  
3. 針對要的資料 先透過key進入再選第一筆[0]的.data
![image](https://hackmd.io/_uploads/r1mAW2e2a.png)

    > 這邊比較不一樣的地方是透過.data 而不是key的方式取

4. 結果，img_metas的Datacontainer型態被換掉了
     ![image](https://hackmd.io/_uploads/S1H2f3gna.png)

## :feet: 額外:判斷參數是否為DataContainer型態

1. 假設img_metas目前資料為以下
![image](https://hackmd.io/_uploads/r1ufNsfCa.png)

2. 導入DataContainer Classc

    `from mmcv.parallel import DataContainer as DC`

3. 透過以下程式碼即可判斷
```
if isinstance(img_metas[0], DC):
    img_metas=img_metas[0].data
    print('img_metas成功脫離datacontainer')
```


