Python生成資料列表

2021-10-05 23:29:16 字數 3367 閱讀 1500

跟我這樣做:

定義訓練引數

定義需要用到的變數、列表等

遍歷每一類別的,並記錄每一類別的數量和總數量

將遍歷的路徑、對應的類別儲存到第二步定義的列表中

亂序後將相關資訊儲存到json檔案

let』s do it!

import os

import random

train_parameters =

,# 標籤資訊

'class_dim':0

,# 類別個數

"train_list_path"

:"/home/data/train.txt"

,#train.txt路徑

"eval_list_path"

:"/home/data/eval.txt"

,#eval.txt路徑

"readme_path"

:"/home/data/readme.json"

,#readme.json路徑

}def

get_data_list

(datapath, train_list_path, eval_list_path)

: class_infor =

# 存放所有類別,如:dog, cat, car……

class_label =

0# 標記類別標籤

class_num =

0# 每一類多少張

class_dim =

0# 一共多少類

all_class_images =

0# 總的數量

data_list_path = datapath +

"dataname/"

# 資料位址

class_dirs = os.listdir(data_list_path)

# 讀取類別目錄名稱

trainer_list =

# 用於儲存訓練的檔案位址,之後轉成txt

eval_list =

# 用於推理訓練的檔案位址,之後轉成txt

for class_dir in class_dirs:

# 遍歷目標位址下的所有目錄檔案,乙個目錄乙個類別

class_dim +=

1# 統計一共多少個資料夾,就是多少個類

class_detail_list =

# 建立乙個儲存類別相關資訊的字典,比如類別名稱以及對應的標籤等

eval_sum =

0 trainer_sum =

0 path = data_list_path + class_dir # 某一類對應資料夾的路徑

img_paths = os.listdir(path)

# 某一類資料夾裡的名稱

for img_path in img_paths:

# 遍歷某一類檔案裡的每一張

name_path = path +

'/'+ img_path # 每張的路徑

if class_num %

10==0:

# 每10張取乙個做驗證資料

eval_sum +=

1'\t%d'

% class_label +

'\n'

)else

: trainer_sum +=

1'\t%d'

% class_label +

'\n'

) class_num +=

1# 遍歷一張,統計該類的有多上張的變數增1

all_class_images +=

1# 遍歷完一類後,將該類的相關資訊儲存到字典中

# 說明的json檔案的class_detail資料

class_detail_list[

'class_name'

]= class_dir #類別名稱,如jiangwen

class_detail_list[

'class_label'

]= class_label #類別標籤

class_detail_list[

'class_eval_images'

]= eval_sum #該類資料的測試集數目

class_detail_list[

'class_trainer_images'

]= trainer_sum #該類資料的訓練集數目

#初始化標籤列表

train_parameters[

'label_dict'][

str(class_label)

]= class_dir

class_label +=

1# 遍歷完乙個資料夾後,對應類別標籤加1

#初始化分類數

train_parameters[

'class_dim'

]= class_dim

# 打亂檔案順序

random.shuffle(eval_list)

# 將打亂後的檔案位址寫入txt檔案儲存

with

open

(eval_list_path,

'a')

as f:

for path in eval_list:

f.write(path)

random.shuffle(trainer_list)

with

open

(train_list_path,

'a')

as f:

for path in eval_list:

f.write(path)

# 說明的json檔案資訊

readjson =

readjson[

'all_class_name'

]= data_list_path #檔案父目錄

readjson[

'all_class_images'

]= all_class_images

readjson[

'class_detail'

]= class_detail

jsons = json.dumps(readjson, sort_keys=

true

, indent=

4, separators=

(','

,': '))

with

open

(train_parameters[

'readme_path'],

'w')

as f:

f.write(jsons)

print

('生成資料列表完成!'

)

python 快速生成數字,字母列表

1.快速生成1,2,3,100數字列表 print i for i in range 1,101 2.快速生成001,002,003,100數字列表 print f for i in range 1,101 或者不用f string print 03d i for i in range 1,101 ...

TPC DS 生成資料

其實,使用 tpc ds 生成系統效能測試的資料,說簡單也簡單,說難,確實也不好做!關鍵是在每一步的操作中,如果遇到了問題,該怎麼樣處理,這個是個問題的關鍵。下面就將生成的步驟簡單描述一下,好記性不如爛筆頭呀!通過以上六步驟,就可以將 tpc ds 資料全部 load 到對應的表中去,也就生成了相應...

Matlab生成資料

有四種基本隨機數函式 rand randi randn 和 randperm。rand 函式返回在 0 和 1 之間均勻分布的實數。例如,r1 rand 1000,1 r1 是乙個含有均勻分布浮點實數的 1000 x 1 的列向量。r1 中的所有值均處於開區間 0,1 內。這些值的直方圖大致上是扁平...