コード例 #1
0
        maxpool1,
        layer2,
        relu2,
        maxpool2,
        flatten,
        layer3,
        softmax1
    ),
    loss1)

loss_epoch = []
accuracy_epoch =[]

# training and predicting
learning_rate = 0.1
loss_epoch = (model.fit(x_train, y_train, epochs=15, lr=learning_rate))
y_pred = model.predict(x_test)

acc = np.mean(y_pred == y_test)
print(str(learning_rate) + "done!!!")
print(str(acc))
accuracy_epoch.append([learning_rate, acc])

# plot the training loss vs epoch
plt.plot(range(0, 15), loss_epoch, label="learning rate = 0.1")

plt.legend()
plt.grid()
plt.xticks(np.arange(0, 15, 1))
plt.xlabel("epoch")
plt.ylabel("loss")
コード例 #2
0
lr=[0.1, 0.01, 0.2]
for i in lr:
    model = Sequential(layers=(FullLayer(32 * 32 * 3, 2500),
                               ReluLayer(),
                               FullLayer(2500, 2000),
                               ReluLayer(),
                               FullLayer(2000, 1500),
                               ReluLayer(),
                               FullLayer(1500, 1000),
                               ReluLayer(),
                               FullLayer(1000, 500),
                               ReluLayer(),
                               FullLayer(500, 4),
                               SoftMaxLayer()),
                       loss=CrossEntropyLayer())
    finalloss = model.fit(x_train, y_train,epochs=20, lr=i)
    y_pred = model.predict(x_test)
    accuracy=(np.mean(y_test == y_pred))
    print('Accuracy: %.2f' % accuracy)
    np.append(test_accuracy, accuracy)
    plt.plot(range(epochs), finalloss, label=('Learning rate=',i))
    plt.xlabel('epochs')
    plt.ylabel('Training loss')
    plt.title('Training loss Vs Epochs for the CIFAR100 data set')
    plt.legend()
plt.show()
plt.plot(lr, test_accuracy)
plt.title('Test Accuracy Vs Learning Rate for Modified NN')
plt.xlabel('Learning rate')
plt.ylabel('Testing Accuracy')
plt.show()
コード例 #3
0
ファイル: better_cifar.py プロジェクト: hemanthbd/CNN
loss = CrossEntropyLayer()


lr = 0.1
scores = []
n_epochs = 5
batch_size = 128

x_train = np.array(x_train)
y_train = np.array(y_train)
x_test = np.array(x_test)
y_test = np.array(y_test)

model = Sequential((layer1, relu1, layer2, layer3, relu2, layer4, layer5, layer6, softmax), loss)

loss2,loss3 = model.fit(x_train, y_train, x_test, y_test, n_epochs, lr, batch_size)

print("Train Loss", loss2)
print("Test Loss", loss3)
y_pred = model.predict(x_test)
print('Predictions', y_pred)
    # y_train1= y_train.argmax(1)
print('Actual', np.argmax(y_test, axis=1))
scores.append(np.mean(y_pred == np.argmax(y_test, axis=1)))

print("Neural accuracy for n_epochs=" + str(n_epochs) + " and Learning Rate=" + str(lr) + " is: " + str(np.argmax(y_test, axis=1)))


scores = np.asarray(scores)
print(scores)
コード例 #4
0
    myNet = Sequential(
        layers=(
            ConvLayer(n_i=3, n_o=16, h=3),
            ReluLayer(),
            MaxPoolLayer(size=2),
            ConvLayer(n_i=16, n_o=32, h=3),
            ReluLayer(),
            MaxPoolLayer(size=2),
            FlattenLayer(),
            FullLayer(n_i=12 * 12 * 32, n_o=6),  # no neutral class:/
            SoftMaxLayer()),
        loss=CrossEntropyLayer())

    print("Initiating training")
    loss[counter, :] = myNet.fit(x=train_x,
                                 y=train_y,
                                 epochs=epochs,
                                 lr=lr,
                                 batch_size=batch_size)
    myNet.save()
    pred = myNet.predict(test_x)
    accuracy = np.mean(pred == test_y)
    errork[counter] = 1 - accuracy
    print('At fold = ' + str(counter + 1))
    print('Accuracy of Convolutional Neural Network = ' + str(accuracy))
    counter += 1
error5folds = np.mean(errork)
accuracy = 1 - error5folds
print('At learning rate = ' + str(lr) + 'and fold = ' + str(counter + 1))
print('Accuracy of Convolutional Neural Network = ' + str(accuracy))
コード例 #5
0
from layers.cross_entropy import CrossEntropyLayer
from layers.dataset import fer2013
import numpy as np

(train_x, train_y), (val_x,val_y), (test_x, test_y) = fer2013()
#Since network is extremely slow, training on the first 1500 images
train_x = train_x[0:1500,:,:,:]

lr = 0.1
epochs = 100
batch_size = 128
myNet = Sequential(layers=(ConvLayer(n_i=1,n_o=16,h=3),
                           ReluLayer(),
                           MaxPoolLayer(size=2),
                           ConvLayer(n_i=16,n_o=32,h=3),
                           ReluLayer(),
                           MaxPoolLayer(size=2),
                           FlattenLayer(),
                           FullLayer(n_i=12*12*32,n_o=7),
                           SoftMaxLayer()),
                   loss=CrossEntropyLayer())
print("Initiating training")
loss = myNet.fit(x=train_x,y=train_y,epochs=epochs,lr=lr,batch_size=batch_size)
myNet.save()
pred = myNet.predict(val_x)
accuracy = np.mean(pred == val_y)
print('At learning rate = '+str(lr))
print('Accuracy of Convolutional Neural Network = '+str(accuracy))


コード例 #6
0
from layers.full import FullLayer
from layers.softmax import SoftMaxLayer
from layers.cross_entropy import CrossEntropyLayer
from layers.sequential import Sequential
from layers.relu import ReluLayer
from layers.dataset import cifar100
from sklearn.metrics import accuracy_score
import numpy as np

(x_train, y_train), (x_test, y_test) = cifar100(1213391684)

layer1 = FullLayer(3072, 2052)
relu1 = ReluLayer()
layer2 = FullLayer(2052, 680)
relu2 = ReluLayer()
layer3 = FullLayer(680, 4)
softmax = SoftMaxLayer()
loss = CrossEntropyLayer()
model = Sequential((layer1, relu1, layer2, relu2, layer3, softmax), loss)

model.fit(x_train, y_train, epochs=25, lr=0.06)
out = model.predict(x_test)
y = np.reshape(y_test, (x_test.shape[0], 1))
print("y_test.shape:", y.shape)
print("out.shape:", out.shape)
t = accuracy_score(y, out)
print(y_test, "Predicted Val", out)
print('accuracy score', t)
score = (np.mean(out == y))
print("score", score)