我在tensorflow 2.4.1版中使用tensorflow.keras。 我已经编写了一个自定义生成器,但在第一个纪元的开始阶段,它给出了一个错误:“int”对象没有属性“shape”
def data_generator(path, model_path):
loadmodel = load_model(model_path)
new_model = Model(loadmodel.input, loadmodel.layers[-2].output)
dirs = os.listdir(path)
dirs = np.sort(dirs)
while True:
for i in range(len(dirs)):
print("Directory: ", os.path.join(path, dirs[i]))
vid_list = os.listdir(os.path.join(path, dirs[i]))
for j in range(len(vid_list)):
video = cv2.VideoCapture(os.path.join(path, dirs[i], vid_list[j]))
cnt = 0
x_train = np.zeros((10, 1024))
while True:
ret, frame = video.read()
if not ret:
break
frame = process_image_for_video(frame, (299, 299, 3))
frame = np.expand_dims(frame, axis=0)
predictions = new_model.predict(frame)
x_train[cnt] = predictions
cnt = cnt + 1
if cnt == 10:
yield_val = (x_train, i)
yield yield_val
cnt = 0
x_train = np.zeros((10, 1024))
错误是:
Traceback (most recent call last):
File "/mnt/Darshil/IIITB/Semester2/NC854DigitalImageProcessing/PaperReading/video_classification/archive/five-video-classification-methods-master/train_custom.py", line 60, in <module>
vmodel.fit_generator(generator, epochs=epoch, steps_per_epoch=steps, verbose=1, validation_data=generator, validation_steps=steps)
File "/home/darshil/.virtualenvs/ml/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py", line 1847, in fit_generator
return self.fit(
File "/home/darshil/.virtualenvs/ml/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py", line 1050, in fit
data_handler = data_adapter.DataHandler(
File "/home/darshil/.virtualenvs/ml/lib/python3.8/site-packages/tensorflow/python/keras/engine/data_adapter.py", line 1100, in __init__
self._adapter = adapter_cls(
File "/home/darshil/.virtualenvs/ml/lib/python3.8/site-packages/tensorflow/python/keras/engine/data_adapter.py", line 798, in __init__
output_shapes = nest.map_structure(_get_dynamic_shape, peek)
File "/home/darshil/.virtualenvs/ml/lib/python3.8/site-packages/tensorflow/python/util/nest.py", line 659, in map_structure
structure[0], [func(*x) for x in entries],
File "/home/darshil/.virtualenvs/ml/lib/python3.8/site-packages/tensorflow/python/util/nest.py", line 659, in <listcomp>
structure[0], [func(*x) for x in entries],
File "/home/darshil/.virtualenvs/ml/lib/python3.8/site-packages/tensorflow/python/keras/engine/data_adapter.py", line 792, in _get_dynamic_shape
shape = t.shape
AttributeError: 'int' object has no attribute 'shape'
您将返回
i
作为您的目标,它是一个整数。您需要将i
转换为NumPy数组。你知道这个练习:在守则的这部分:
相关问题 更多 >
编程相关推荐