Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 95 additions & 0 deletions load_datas.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
#############################################################################################################
# load features and labels #
# feature dimension : (N,d), (i.e., N*4096), label dimension : (N,) #
# type of all the output will be "list" #
#############################################################################################################
# There are two different setting of training and testing : #
# The default setting (setting-0) is splitting the dataset into two parts, half for training, half for #
# testing. Training index: lab-1234, office-123, house-123. Testing index: lab-5678, office-456, house-456 #
#############################################################################################################

import sys, os
import numpy as np
import pdb
import warnings
import re

def load_one_label_seq(path):
npy = np.load(path)
return npy


def load_label_seqs(path, mode, index):
labels=[]
for i in range(len(index)):
loc = index[i][0]
idx = index[i][1]
labelnpy = os.path.join(path,loc,mode+"_left"+str(idx)+'.npy')
labels.append(load_one_label_seq(labelnpy))
labelnpy = os.path.join(path,loc,mode+"_right"+str(idx)+'.npy')
labels.append(load_one_label_seq(labelnpy))

return labels

def gen_index(setting_index):
train_index=[]
test_index =[]
if setting_index == 0:
for i in range(1,9):
if i <= 4:
train_index.append(('lab',i))
else:
test_index.append(('lab',i))
for i in range(1,7):
if i <= 3:
train_index.append(('office',i))
else:
test_index.append(('office',i))
for i in range(1,7):
if i <= 3:
train_index.append(('house',i))
else:
test_index.append(('house',i))
else:
raise ValueError ('error setting index')

return train_index, test_index



def gen_index_process(index=None, setting_index=None):
if index == None:
if setting_index==None:
raise ValueError('Setting index can not be none')
else:
train_index, test_index = gen_index(setting_index)
return train_index, test_index


def load_train_labels(path, mode, index=None, setting_index=None):
if index == None:
index,_ = gen_index_process(index,setting_index)
else:
if setting_index != None:
warnings.warn('setting_index has no effect when given particular index')
labels = load_label_seqs(path, mode, index)
return labels

def load_test_labels(path, mode, index=None, setting_index=None):
if index == None:
_,index = gen_index_process(index,setting_index)
else:
if setting_index != None:
warnings.warn('setting_index has no effect when given particular index')
labels = load_label_seqs(path, mode, index)
return labels


def load_all_labels(path, mode, setting_index):
train_index, test_index = (setting_index)
train_labels = load_train_labels(path, mode,train_index)
test_labels = load_train_labels(path, mode,test_index)
return train_labels, test_labels



23 changes: 12 additions & 11 deletions results/index.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,26 @@
# Your Name <span style="color:red">(id)</span>
# 高穎  106062525 <span style="color:red">(id)</span>

#Project 5: Deep Classification

## Overview
The project is related to
> quote
>tensorflow
>vgg16

>model和權重如下
https://drive.google.com/drive/folders/0B4i3Xp6AJX7YSExOMEMxYTBxWnM?usp=sharing

## Implementation
1. One
* item
* item
2. Two
1. tensorflow_finetune
用ImageNet pretrain好的vgg16參數,前七層不改,最後一層fc重新train.每train一個epoch就把train好的權重記下來
2. load_datas
load training和test的label
3.tensorflow_test
用記下來的權重加上test的檔案計算準確度,因為時間不夠所以沒有test完全部資料夾,只test了lab資料夾 準確度0.41

```
Code highlights
```

## Installation
* Other required packages.
* How to compile from source?
* 用anaconda建一個有tensorflow的虛擬環境,利用spyder編譯

### Results

Expand Down
Loading