我试图在MNIST数据库上执行通常的分类,但随机裁剪的数字.图像按以下方式裁剪:随机删除第一个/最后一个和/或行/列.
我想使用使用Keras(和Tensorflow后端)的卷积神经网络来执行卷积,然后进行通常的分类.
输入的大小可变,我无法让它工作.
这是我如何裁剪数字
import numpy as np
from keras.utils import to_categorical
from sklearn.datasets import load_digits
digits = load_digits()
X = digits.images
X = np.expand_dims(X, axis=3)
X_crop = list()
for index in range(len(X)):
X_crop.append(X[index, np.random.randint(0,2):np.random.randint(7,9), np.random.randint(0,2):np.random.randint(7,9), :])
X_crop = np.array(X_crop)
y = to_categorical(digits.target)
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X_crop, y, train_size=0.8, test_size=0.2)
Run Code Online (Sandbox Code Playgroud)
这是我想要使用的模型的架构
from keras.layers import Dense, Dropout
from keras.layers.convolutional import Conv2D
from keras.models import Sequential
model = Sequential()
model.add(Conv2D(filters=10,
kernel_size=(3,3),
input_shape=(None, None, 1),
data_format='channels_last'))
model.add(Dense(128, …Run Code Online (Sandbox Code Playgroud)