-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathnn_data.py
More file actions
138 lines (112 loc) · 3.23 KB
/
Copy pathnn_data.py
File metadata and controls
138 lines (112 loc) · 3.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
import os
import glob
from sklearn.utils import shuffle
import numpy as np
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import normalize
# pca=PCA(n_components=900,whiten=True)
batch_size=32
path='ModelNet10pcd'
classes=os.listdir(path)
true_label=[]
true_data=[]
validation_data=[]
train_data=[]
train_label=[]
validation_label=[]
print classes
num_class=len(classes)
n=20
N=900
# validation_size=N*n/10
for file in classes:
train_path='train_fisher/'+file+'_fisher_train.txt'
data=np.loadtxt(train_path,delimiter=',')
# data=StandardScaler().fit_transform(data)
shape=data.shape
b=data
while b.shape[0]<N-shape[0]:
b=np.append(b,data,axis=0)
x=N-b.shape[0]
b=np.append(b,data[:x],axis=0)
print b.shape
b=shuffle(b)
# b=StandardScaler().fit_transform(b)
label=np.zeros(num_class)
index=classes.index(file)
label[index]=1.0
val=N*20/100
nval=N-val
for i in range(nval):
train_label.append(label)
train_data.append(b[i])
for j in range(nval,N):
validation_data.append(b[i])
validation_label.append(label)
# train_data.append(data[:100-validation_size])
# validation_data.append(data[100-validation_size:])
# true_data=np.reshape(true_data,[tr*10,shape[1]])
# true_data=normalize(true_data, norm='l2')
# pca.fit_transform(true_data)
train_data=StandardScaler().fit_transform(train_data)
validation_data=StandardScaler().fit_transform(validation_data)
train_data=np.array(train_data)
validation_data=np.array(validation_data)
train_label=np.array(train_label)
validation_label=np.array(validation_label)
train_data=train_data[:,np.newaxis,:]
validation_data=validation_data[:,np.newaxis,:]
train_data,train_label=shuffle(train_data,train_label)
validation_data,validation_label=shuffle(validation_data,validation_label)
print train_data.shape
print validation_data.shape
print train_label.shape
#train
# val=true_data.shape[0]*20/100
class DataSet(object):
def __init__(self, images, labels):
self._num_examples = images.shape[0]
self._images = images
self._labels = labels
self._epochs_done = 0
self._index_in_epoch = 0
@property
def images(self):
return self._images
@property
def labels(self):
return self._labels
@property
def num_examples(self):
return self._num_examples
@property
def epochs_done(self):
return self._epochs_done
def next_batch(self, batch_size):
"""Return the next `batch_size` examples from this data set."""
start = self._index_in_epoch
self._index_in_epoch += batch_size
if self._index_in_epoch > self._num_examples:
# After each epoch we update this
self._epochs_done += 1
start = 0
self._index_in_epoch = batch_size
assert batch_size <= self._num_examples
end = self._index_in_epoch
return self._images[start:end], self._labels[start:end]
def shapes():
"""docstring for ClassName"""
size=train_data.shape
return size
def read_train_sets():
class DataSets(object):
pass
data_sets = DataSets()
validation_images = validation_data
validation_labels = validation_label
train_images =train_data
train_labels = train_label
data_sets.train = DataSet(train_images, train_labels)
data_sets.valid = DataSet(validation_images, validation_labels)
return data_sets