|
| 1 | +# import theano |
| 2 | +# import theano.tensor as T |
| 3 | +import numpy as np |
| 4 | +import cv2 |
| 5 | +from keras.models import Sequential |
| 6 | +from keras.layers import Dense, Dropout, Activation |
| 7 | +from keras.optimizers import SGD |
| 8 | +from random import randint |
| 9 | + |
| 10 | +image_file = cv2.imread("Mona Lisa.jpg") |
| 11 | + |
| 12 | +x1 = [] |
| 13 | +x2 = [] |
| 14 | +y1 = [] |
| 15 | +y2 = [] |
| 16 | + |
| 17 | +for i in xrange(image_file.shape[0]): |
| 18 | + for j in xrange(image_file.shape[1]): |
| 19 | + prob = randint(0,9) |
| 20 | + if prob>0: |
| 21 | + # np.insert(X_train,[[i,j]], axis=0) |
| 22 | + # np.insert(Y_train,[image_file[i,j,:].astype('float32')/255], axis=0) |
| 23 | + |
| 24 | + x1.append([i,j]) |
| 25 | + y1.append(image_file[i,j,:].astype('float32')/255) |
| 26 | + else: |
| 27 | + # np.insert(X_test,[[i,j]], axis=0) |
| 28 | + # np.insert(Y_test,[image_file[i,j,:].astype('float32')/255], axis=0) |
| 29 | + |
| 30 | + x2.append([i,j]) |
| 31 | + y2.append(image_file[i,j,:].astype('float32')/255) |
| 32 | + |
| 33 | + |
| 34 | +X_train = np.array(x1) |
| 35 | +X_test = np.array(x2) |
| 36 | +Y_train = np.array(y1) |
| 37 | +Y_test = np.array(y2) |
| 38 | + |
| 39 | +print len(X_train), len(Y_train), len(X_test), len(Y_test) |
| 40 | +print X_train[:5], Y_train[:5] |
| 41 | + |
| 42 | +model = Sequential() |
| 43 | +model.add(Dense(100, input_dim=2, init='uniform')) |
| 44 | +model.add(Activation('relu')) |
| 45 | +model.add(Dropout(0.5)) |
| 46 | +# model.add(Dense(100, init='uniform')) |
| 47 | +# model.add(Activation('relu')) |
| 48 | +# model.add(Dropout(0.5)) |
| 49 | +model.add(Dense(3, init='uniform')) |
| 50 | +model.add(Activation('relu')) |
| 51 | +model.add(Dropout(0.5)) |
| 52 | + |
| 53 | +sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True) |
| 54 | +model.compile(loss='mean_squared_error', optimizer=sgd) |
| 55 | + |
| 56 | +model.fit(X_train, Y_train, |
| 57 | + nb_epoch=20, |
| 58 | + batch_size=20, |
| 59 | + show_accuracy=True) |
| 60 | + |
| 61 | +score = model.evaluate(X_test, Y_test, batch_size=20) |
0 commit comments