前提・実現したいこと
kerasで分類問題のモデルを作っている途中なのですが、
「.ipynb_checkpoints」というファイル?によるエラーが発生しています。
以下のようなエラーメッセージが出るため該当のフォルダを確認すると、「.ipynb_checkpoints」といったファイルは存在していないため削除することもできず、エラーが解消できずに困っています。
そこで「.ipynb_checkpoints」の削除方法についてご存知でしたらご教示いただきたく質問させていただきます。
質問内容に不足している点がありましたらお知らせください。
お手数をおかけしますがどうぞよろしくお願い致します。
発生している問題・エラーメッセージ
FileNotFoundError: [Errno 2] No such file or directory: './hold_dir/.ipynb_checkpoints0.jpeg'
該当のソースコード
※学習部分のコードは省略させていただきます
Python
1def test_acc(model, test_dir, hold_dir, classes, thresh=0, sample=1000): 2 """ 3 テスト用 4 model: 特徴抽出用モデル 5 X: array 6 test_dir: str 画像入ってるフォルダ 7 hold_dir:str 登録データのフォルダ ファイル名はclass名.jpgにしてください 8 classes: フォルダ名のリスト 9 """ 10 correct = 0 11 hold_vector = get_hold_vector(model, classes, hold_dir) 12 13 test_datagen=ImageDataGenerator(rescale=1.0/255.) 14 test_generator=test_datagen.flow_from_directory( 15 test_dir, 16 target_size=(512,496), 17 batch_size=1, 18 class_mode='categorical', 19 classes=classes) 20 21 for i in range(sample): 22 X, Y = test_generator.next() 23 Y = np.argmax(Y, axis=1) 24 predict_vector = model.predict(X) 25 index = judgment(predict_vector,hold_vector, thresh) 26 label_index = index // 4 27 if Y == label_index: 28 correct += 1 29 30 print('label_index{}'.format(label_index)) 31 print('Y{}'.format(Y)) 32 acc = correct / sample 33 print("acc: {}".format(acc)) 34 return acc 35 36def cosine_similarity(x1, x2): 37 if x1.ndim == 1: 38 x1 = x1[np.newaxis] 39 if x2.ndim == 1: 40 x2 = x2[np.newaxis] 41 x1_norm = np.linalg.norm(x1, axis=1) 42 x2_norm = np.linalg.norm(x2, axis=1) 43 cosine_sim = np.dot(x1, x2.T)/(x1_norm*x2_norm+1e-10) 44 return cosine_sim 45 46# new画像のcos類似度を比較して一番値が高いindexを取り出しその値が閾値を超えるならindexを閾値以下ならをNoneを返す 47 48def judgment(predict_vector, hold_vector, thresh): 49 """ 50 predict_vector : shape(1,1028) 51 hold_vector : shape(5, 1028) 52 """ 53 cos_similarity = cosine_similarity(predict_vector, hold_vector) # shape(1, 5) 54 print('cos_similarity{}'.format(cos_similarity[0])) 55 # 最も値が高いindexを取得 56 high_index = np.argmax(cos_similarity[0]) # int 57 58 # cos類似度が閾値を超えるか 59 if cos_similarity[0, high_index] > thresh: 60 #print('high_index{}'.format(high_index)) 61 return high_index 62 63 else: 64 return None 65 66def get_hold_vector(model, classes, hold_dir): 67 """ 68 classes: クラス名のリスト イメージの名前はこのリスト名にしてください 69 hold_dir: str イメージが入ったフォルダpath 70 """ 71 img_array = np.empty((0, 512,496,3)) 72 73 for clas in classes: 74 for i in range(4): 75 imagepath = os.path.join(hold_dir, clas + str(i) +".jpeg") 76 img = load_img(imagepath, target_size=(512,496)) 77 array = img_to_array(img).reshape(1, 512, 496, 3) 78 img_array = np.vstack((img_array, array)) 79 80 img_array = img_array/255.0 81 hold_vector = model.predict(img_array) 82 83 return hold_vector 84 85# hold_vector作成用の辞書 86drink_dict = {"calpis":5, "ilohas_peach":4, "mitsuya":3, "ilohas_normal":2, "pocari":1} 87# hold_vectorをファイルに保存 88 89import pickle 90def pickel_hold_vector(hold_vector, classes, num_image=4): 91 #ファイルに書き込み 92 name_list = [] 93 for clas in classes: 94 name_list += ["zidolegi_data2/feature/{}_{}_feature.dump".format(drink_dict[clas], i) for i in range(num_image)] 95 96 for vec, name in zip(hold_vector, name_list): 97 with open(name , 'wb') as f: 98 pickle.dump(vec, f) 99 100hold_dir = "./hold_dir" 101test_dir = "./test_dir" 102classes = os.listdir(test_dir) 103hold_vector = get_hold_vector(model, classes, hold_dir) 104pickel_hold_vector(hold_vector, classes)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/16 08:01