def test():
    
    network = SimpleConvNet(input_dim=(3,128,128), 
                        conv_param = {'filter_num': [32,32], 'filter_size': [3,3], 'pad': [1,1], 'stride': [1,1]},
                        hidden_size=100, output_size=12, weight_init_std=0.01)

    network.load_params("params.pkl")

    data_transform = transforms.Compose([
        transforms.RandomResizedCrop(128),
        transforms.ToTensor(),
        transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
    ])

    path = join('dataset\plant-seedlings-classification', 'test')

    sample_submission = pd.read_csv('sample_submission.csv')
    submission = sample_submission.copy()
    for i, f in enumerate(sample_submission['file']):
        print(join(path, f))
        image = Image.open(join(path, f))

        #convert image
        if image.mode != "RGB":
            image = image.convert("RGB")
        image = data_transform(image)
        image = np.expand_dims(image, axis=0)
        
        output = network.predict(image)
        output = np.argmax(output, axis=1)
        
        submission['species'][i] = one_hot_key[output[0]]

    submission.to_csv('submission.csv', index=False)
示例#2
0
    img28 = np.array(img.resize((28,28)))

    img.save('img.jpg')
    pil_img_gray = Image.fromarray(np.uint8(img28)).save('img28.jpg')

    thresh = np.median(img28)
    if thresh > 127:
        img28 = 255 - img28

    x = np.zeros(img28.shape, img28.dtype)
    x[np.where(img28 > thresh)] = 255

    pil_img_gray = Image.fromarray(np.uint8(x)).save('result.jpg')

    x = np.ravel(x)/255
    # 入力値をテキストで出力
    for i in range(0, 28):
        for j in range(0, 28):
            print("{:01.0f}".format(x[28*i+j]), end=' ')
        print('')

    # 畳み込みニューラルネットワークで推測させる
    x = x.reshape((1, 1, 28, 28))
    y = network.predict(x)
    y = softmax(y.reshape(10))

    # 推測結果を出力
    y_idx = np.argsort(y)
    for i in range(10):
        print(y_idx[9-i], ":", round( y[y_idx[9-i]]*100, 2), "%" )
# データの読み込み
(x_train, t_train), (x_test, t_test) = load_cifar10(normalize=False, flatten=False)

#x_train = x_train[:1000]
#t_train = t_train[:1000]

x_train = x_train * 2.0 - 255
x_test = x_test * 2.0 - 255

batch_size=100

network = SimpleConvNet(input_dim=(3,32,32),
                        conv_param = {'filter_num': (32, 32, 64), 'filter_size': 3, 'pad': 1, 'stride': 1},
                        hidden_size=512, output_size=10, weight_init_std=0.01)

# パラメータの復帰
network.load_params("params.pkl")
print("Loaded Network Parameters!")

tt_array=np.empty((0,10),np.float32)

for i in range(int(x_train.shape[0] / batch_size)):
    tx = x_train[i*batch_size:(i+1)*batch_size]
    tt = network.predict(tx, train_flg=False)
    tt = softmax(tt).get()
    tt_array=np.concatenate((tt_array,tt),axis=0)        

#tt_array=tt_array.reshape(-1,10)
with open("ttarray.pkl", 'wb') as f:
    pickle.dump(tt_array, f)