У меня проблема:
Я пытаюсь сделать простые самодвижущиеся машины, которые могут плавно двигаться, управлять дроссельной заслонкой и ломаться.
И у меня такая проблема:
Я не могу объединить модель VGG_16 с керасом и текущей скоростью автомобиля.
Уже пробовал:
from keras.applications import VGG16
from keras import models
from keras import layers
from Train import *
import numpy as np
import keras
from keras.layers import concatenate
from keras.preprocessing import image
from keras.applications.vgg16 import preprocess_input
from keras.layers import Input, Flatten, Dense
from keras.models import Model
import numpy as np
import tensorflow as tf
import keras.backend as K
images, speed, labels = LoadGPS_SPEED() # load training data, image, car speed and label ([0, 1, 0], for example. Where [0 - left turn, 1 - throttle, 0 - right turn]
speed = speed.reshape(speed.shape[0], 1) # reshape to shape[0], 1, because speed is just a number (20, for example)
speed = K.variable(speed) # here is some magic, which i tired, because without that i got other error, lol. P.S Right after loading, images, speed and labels - are just numpy arrays
vgg_conv = VGG16(weights='imagenet', # VGG from default keras application
include_top=False)
for layer in vgg_conv.layers[0:-4]:
layer.trainable = False
input = Input(shape=(60,60,3),name = 'image_input')
output_vgg16_conv = vgg_conv(input)
conv_flat = layers.Flatten()(output_vgg16_conv)
conv_flat = concatenate([speed, conv_flat]) # trying to concatenate speed and flatten layer
conv_flat = layers.Dense(1024, activation='relu')(conv_flat)
conv_flat = layers.Dropout(0.5)(conv_flat)
conv_flat = layers.Dense(3, activation='softmax')(conv_flat) # 3 possible actions
и только что получил такую ошибку:
Traceback (последний вызов был последним): File
«D: /Python_Projects/ProjectCars/ModelGenerate.py», строка 34, в
conv_flat = concatenate ([speed, conv_flat])
Файл "C: \ Program"
Файлы \ Python35 \ lib \ site-packages \ keras \ Layers \ merge.py ", строка 649, в
сцеплять
возврат конкатенации (ось = ось, ** кваргс) (входные данные)
Файл "C: \ Program"
Файлы \ Python35 \ lib \ site-packages \ keras \ engine \ base_layer.py ", строка
431, в звоните
self.build (unpack_singleton (input_shapes)) * * тысяча двадцать-одна
Файл "C: \ Program"
Файлы \ Python35 \ lib \ site-packages \ keras \ Layers \ merge.py ", строка 362, в
строить
'Получил формы ввода:% s'% (input_shape))
ValueError: для слоя Concatenate
требуются входные данные с соответствующими формами
кроме конкатной оси. Получил входные формы: [(10, 1), (Нет, 512)]
Пожалуйста, помогите мне. Я только начинающий и не знаю, как это исправить: c