-
Notifications
You must be signed in to change notification settings - Fork 1
/
CNN.py
96 lines (75 loc) · 2.57 KB
/
CNN.py
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
import os
#import tensorflow as tf
os.environ['TF_CPP_MIN_LOG_LEVEL'] = "2"
import numpy as np
import pandas as pd
import sklearn
from sklearn.model_selection import train_test_split
from numpy import load
import tensorflow
from tensorflow import keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout
from keras.layers import Conv2D
from keras.layers import MaxPooling2D
from keras.layers import Flatten
import matplotlib.pyplot as plt
from numpy import save
from keras.layers import BatchNormalization
from keras import regularizers
############################################
from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession
config = ConfigProto()
config.gpu_options.allow_growth = True
session = InteractiveSession(config=config)
##############################################
#import os
#import tensorflow as tf
#os.environ['TF_CPP_MIN_LOG_LEVEL'] = "3"
Xdata = load('rotate_data.npy')
df=pd.read_csv("3_outputs.csv")
df=df.values
Y=np.dstack(df)
X_train, X_test, y_train, y_test =train_test_split(Xdata.T,Y.T,test_size=0.1)
save('testing_data_3',X_test)
print(np.shape(X_train))
X_train = X_train.reshape(-1, 600, 600, 1)
X_test = X_test.reshape(-1, 600, 600, 1)
model =Sequential()
model.add(Conv2D(4,(5,5),activation= 'relu'))
#model.add(Dropout(0.5))
#model.add(BatchNormalization())
#model.add(MaxPooling2D((2,2)))
model.add(Conv2D(8,(5,5),activation= 'relu'))
#model.add(BatchNormalization())
#model.add(Dropout(0.2))
#model.add(MaxPooling2D((2,2)))
model.add(Conv2D(16,(3,3), activation= 'relu'))
model.add(MaxPooling2D((2,2)))
#model.add(BatchNormalization())
model.add(Conv2D(32,(3,3), activation= 'relu'))
model.add(MaxPooling2D((2,2)))
#model.add(BatchNormalization())
model.add(Conv2D(64,(3,3), activation= 'relu'))
model.add(MaxPooling2D((2,2)))
#model.add(BatchNormalization())
model.add(Conv2D(128,(1,1), activation= 'relu'))
model.add(MaxPooling2D((2,2)))
model.add(Flatten())
model.add(Dense(50, activation='relu'))
#model.add(Dropout(0.2))
model.add(Dense(30, activation='relu'))
model.add(Dense(20,activation='relu'))
#model.add(Dropout(0.1))
model.add(Dense(10,activation='relu'))
model.add(Dense(3, activation='linear'))
opt = keras.optimizers.Adam(learning_rate=0.001)
model.compile(optimizer=opt,loss='mse')
model.fit(x=X_train,y=y_train,batch_size=16,validation_data=(X_test,y_test),epochs=90)
#sol=model.predict(X_test)
#print(sol)
#save('prediction',sol) # saving predicted results
save('target_data_3',y_test)
model.save("modelCNN_3.h5")
print("Saved model to disk")