Я пытался запустить модель нейронной сети, используя Keras для некоторых файлов .tfrecord, которые я уже сгенерировал.Для этого я передаю их в качестве аргументов командной строки и сохраняю в наборе данных tenorflow, который затем использую для подгонки к модели.Однако, когда я запускаю код, я получаю следующую ошибку: ValueError: Please provide either inputs and targets or inputs, targets, and sample_weights
.Кажется, что Керас злится, я не передаю отдельные тензоры ввода и метки, но меня убеждают, что вместо этого вы можете использовать набор данных в качестве единственного аргумента?Код показан ниже:
import tensorflow as tf
import sys
import tensorflow.data
from tensorflow import keras
from tensorflow.keras import layers
tf.enable_eager_execution()
inputList = []
for file in sys.argv[0:]:
inputList.append(file)
filenames = tf.Variable(inputList, tf.string)
dataset = tf.data.TFRecordDataset(filenames)
dataset.shuffle(1600000)
model = tf.keras.Sequential()
model.add(layers.Dense(13, input_shape=(13,), activation='relu'))
model.add(layers.Dense(20, activation='relu'))
model.add(layers.Dense(20, activation='relu'))
model.add(layers.Dense(10, activation='relu'))
model.add(layers.Dense(2, activation='relu'))
model.compile(optimizer=tf.train.AdamOptimizer(0.001), loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(dataset, epochs=10, steps_per_epoch=30)