小编Tho*_*rsp的帖子

如何使用Keras处理CNN中的可变大小输入?

我试图在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)

python machine-learning neural-network deep-learning keras

16
推荐指数
1
解决办法
1万
查看次数