teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

修正

2020/09/18 05:54

投稿

hanaaaa
hanaaaa

スコア5

title CHANGED
File without changes
body CHANGED
@@ -7,7 +7,17 @@
7
7
  ### 発生している問題・エラーメッセージ
8
8
 
9
9
  ```
10
+ ---------------------------------------------------------------------------
11
+ IndexError Traceback (most recent call last)
12
+ <ipython-input-60-85bf1503ffac> in <module>
10
- object of type '_io.TextIOWrapper' has no len()
13
+ 2 f= open('fiw/maisuu.txt','r')
14
+ 3 while a<=25158:
15
+ ----> 4 data = f.readlines()[a]
16
+ 5 print(data)
17
+ 6 a=a+1
18
+
19
+ IndexError: list index out of range
20
+
11
21
  ```
12
22
  while文では上記のようなエラーが生じ、for文では0行目の実行結果のみしか表示されませんでした。
13
23
 

2

修正

2020/09/18 05:54

投稿

hanaaaa
hanaaaa

スコア5

title CHANGED
File without changes
body CHANGED
@@ -86,4 +86,47 @@
86
86
 
87
87
  return x,y
88
88
  ```
89
- ソースを追記させていただきました。dataは画像数のことで、テキストデータの各行によって数値が異るため、毎度その数値を読み込み画像数として処理を行いたいです。
89
+ ソースを追記させていただきました。dataは画像数のことで、テキストデータの各行によって数値が異るため、毎度その数値を読み込み画像数として処理を行いたいです。
90
+
91
+ ###試したソースコード
92
+ ```python
93
+ with open('fiw/maisuu.txt') as f:
94
+ for data in f:
95
+ print(data)
96
+ ```
97
+ 実行結果
98
+ ```
99
+ 15
100
+
101
+ 15
102
+
103
+ 30
104
+
105
+ 30
106
+
107
+ 15
108
+
109
+ 15
110
+
111
+ 18
112
+
113
+ 18
114
+
115
+ 9
116
+
117
+ 9
118
+
119
+ 18
120
+
121
+ 18
122
+
123
+ 72
124
+
125
+ 72
126
+
127
+ 90
128
+
129
+ 90
130
+
131
+ ```
132
+ 数値が2つ同じなのは元々です。

1

2020/09/18 05:47

投稿

hanaaaa
hanaaaa

スコア5

title CHANGED
File without changes
body CHANGED
@@ -44,4 +44,46 @@
44
44
  ご意見をいただけますと幸いでございます。
45
45
  ### 補足情報(FW/ツールのバージョンなど)
46
46
 
47
+ ```python
48
+ file_list_path=0
49
+
50
+ # データセットの読み込み関数
51
+ def load_fiw_data(input_dir, img_size):
47
- ここにより詳細な情報を記載してくだい。
52
+ # 画像ファイル名が記載されたファイル
53
+ file_list_path = os.path.join(input_dir,'filename.txt')
54
+ with open('fiw/maisuu.txt') as f:
55
+
56
+ for data in f:
57
+ data=f.readlines()[a]
58
+ print(data)
59
+ # 各ラベルの画像数
60
+           datasize_per_label=data
61
+
62
+
63
+
64
+ x = []
65
+ y = []
66
+ label_idx = 0
67
+
68
+ with open(datasize_per_label, 'r', encoding='utf-8') as f:
69
+ # 各画像ファイルを読み込む
70
+ for i, line in enumerate(f):
71
+ if i > 0 and (i % datasize_per_label) == 0:
72
+ label_idx = label_idx + 1
73
+
74
+ filename = os.path.join(input_dir, 'jpg', line.strip())
75
+ #print("Loading image No: {} Label: {}: path: [{}] ...".format(i, label_idx, filename))
76
+ try:
77
+ img = load_img(filename, target_size = (image_size, image_size))
78
+ data = img_to_array(img)
79
+ x.append(data)
80
+ y.append(label_idx)
81
+
82
+
83
+ a=a+1
84
+ except:
85
+ pass
86
+
87
+ return x,y
88
+ ```
89
+ ソースを追記させていただきました。dataは画像数のことで、テキストデータの各行によって数値が異るため、毎度その数値を読み込み画像数として処理を行いたいです。