Я использую керас. Когда я тренировал свою сеть, я использовал 256 * 256 * 9 форму изображения, но я не фиксирую рост и вес. И моя сеть - полная сеть. Но я тестирую с 512 * 512 * 9, я не могу проверить его из-за формы. Кажется, что функция keras не может быть изменена. Я действительно не знаю, как ее решить, вот журнал ошибок:
Traceback (most recent call last):
File "test9.py", line 19, in <module>
predict = model.predict(img)
File "/home/dingyuyang/.conda/envs/tensorflow/lib/python3.5/site-packages/keras/engine/training. py", line 1147, in predict
x, _, _ = self._standardize_user_data(x)
File "/home/dingyuyang/.conda/envs/tensorflow/lib/python3.5/site-packages/keras/engine/training. py", line 749, in _standardize_user_data
exception_prefix='input')
File "/home/dingyuyang/.conda/envs/tensorflow/lib/python3.5/site-packages/kera
s/engine/training_ utils.py", line 137, in standardize_input_data str(data_shape))
ValueError: Error when checking input: expected input_1 to have shape (256, 256, 9) but got array with shape (512, 512, 9)
Вот мой тестовый код:
model = load_model("weight9.h5")
img = scipy.io.loadmat('./bike_r_6.mat')
img = img['imghor'].astype("float32")
img = img / 255
img = np.transpose(img, (1, 2, 0))
img = np.reshape(img,(1,)+img.shape)
predict = model.predict(img)
print(predict.shape)
predict[predict>=0.7]=1
predict[predict<0.7]=0
predict = np.squeeze(predict)
predict = np.transpose(predict, (2, 0, 1))
name = '92mask.mat'
scipy.io.savemat(name, {'x': predict})
Вот мой основной сетевой код:
def unet(pretrained_weights = None,input_size = (None,None,None)):
inputs = Input(input_size)
conv1 = Conv2D(64, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(inputs)
conv1 = Conv2D(64, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(conv1)
pool1 = MaxPooling2D(pool_size=(2, 2))(conv1)
conv2 = Conv2D(128, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(pool1)
.......
Импульсная форма заполнена из main ():
h, w ,d= org.shape
model = unet(input_size = (h,w,d))