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)
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)