Я правильно делаю набор данных с несколькими метками? - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь создать набор данных tf2.0, который содержит изображения уже в формате np.array и 7 различных меток для каждого изображения. И мой код dataset=tf.data.Dataset.from_tensor_slices((data,labelZh,labelCh1,labelCh2,labelCh3,labelCh4,labelCh5,labelCh6))


Правильно ли я использую tf.data.Dataset.from_tensor_slice? Причина, когда я встраиваю набор данных в свою сеть, я получаю сообщение об ошибке: TypeError: in converted code: TypeError: map_fn() takes from 1 to 3 positional arguments but 8 were given

Моя сеть следует за:

def Forward():
input=keras.Input(shape=(64,64,3),name='title')
x=layers.Conv2D(8,3,activation="relu",padding='same',kernel_initializer="he_normal")(input)
x=layers.MaxPooling2D(2)(x)
x=layers.Dropout(0.25)(x)
x=layers.Conv2D(16,3,activation="relu",padding='same',kernel_initializer="he_normal")(x)
x=layers.MaxPooling2D(2)(x)
x=layers.Conv2D(32,3,activation="relu",padding='same',kernel_initializer="he_normal")(x)
x=layers.MaxPooling2D(2)(x)
x=layers.Conv2D(64,3,activation="relu",padding='same',kernel_initializer="he_normal")(x)
x=layers.MaxPooling2D(2)(x)
x=layers.Dropout(0.25)(x)
output_Zh=layers.Dense(32)(x)
output_1=layers.Dense(34)(x)
output_2=layers.Dense(34)(x)
output_3=layers.Dense(34)(x)
output_4=layers.Dense(34)(x)
output_5=layers.Dense(34)(x)
output_6=layers.Dense(34)(x)
model=keras.Model(inputs=input,outputs=[output_Zh,output_1,output_2,output_3,output_4,output_5,output_6])

return model

1 Ответ

0 голосов
/ 04 марта 2020

Я не могу проверить код прямо сейчас, но решает ли это вашу проблему:

dataset=tf.data.Dataset.from_tensor_slices((
    data,
    {
        'output_Zh': labelZh,
        'output_1': labelCh1,
        'output_2': labelCh2,
        'output_3': labelCh3,
        'output_4': labelCh4,
        'output_5': labelCh5,
        'output_6': labelCh6
    }
))
...