Open wanfb opened 6 years ago
Dear all, I am having the same problem, I found this https://github.com/the-moliver/kfs/issues/17 and seems to be a problem related with keras version, I have also try some solutions based on it but none works
I use keras 2.0.0 , it can work, but use keras 2.0.8 can not work
Thanks @Phoebe-star ! it is working now :D
i also use keras 2.0.8, there also some wrong, e.g. TypeError: get_updates() so i change the function in get_updates in model.py to this:
def get_updates(self, loss,params): grads = self.get_gradients(loss, params) self.updates = []
lr = self.lr
if self.inital_decay > 0:
lr *= (1. / (1. + self.decay * self.iterations)) ** 0.75
self.updates .append(K.update_add(self.iterations, 1))
# momentum
shapes = [K.get_variable_shape(p) for p in params]
moments = [K.zeros(shape) for shape in shapes]
self.weights = [self.iterations] + moments
for p, g, m in zip(params, grads, moments):
v = self.momentum * m - lr * g # velocity
self.updates.append(K.update(m, v))
if self.nesterov:
new_p = p + self.momentum * v - lr * g
else:
new_p = p + v
# apply constraints
if getattr(p, 'constraint', None) is not None:
new_p = p.constraint(new_p)
self.updates.append(K.update(p, new_p))
return self.updates
and finally it work
@qiaoguan I'v used your method ,but ir raised a new Error, File "F:/CVPR2015-CNN for P Re-id/Implementation-CVPR2015-CNN-for-ReID-master/CUHK03/main.py", line 48, in train nb_val_samples=nb_val_samples)
File "E:\Anaconda\lib\site-packages\keras\legacy\interfaces.py", line 91, in wrapper return func(*args, **kwargs)
File "E:\Anaconda\lib\site-packages\keras\engine\training.py", line 2192, in fit_generator generator_output = next(output_generator)
File "E:\Anaconda\lib\site-packages\keras\utils\data_utils.py", line 584, in get six.raise_from(StopIteration(e), e)
File "
StopIteration.
keras version is 2.1.5 tensorflow-gpu 1.7 python 3.5.2
It seems that , the generator can not iterate.Can you give me some suggests?Thank you so much!
Works for me only with
print(tf.__version__) # 1.1.0 only
print(keras.__version__) # 2.0.5 only
Dear author, I came across a problem while compiling your code. I ran " python main.py --dataset cuhk-03.h5, to get the following error. A lot of efforts were paid to solve the problem but I still can't figure it out. Could you please give me some help?
F:\Users\wanfb\Documents\Implementation-CVPR2015-CNN-for-ReID-master\CUHK03>python main.py --dataset cuhk-03.h5 Using TensorFlow backend.
Layer (type) Output Shape Param # Connected to
input_1 (InputLayer) (None, 160, 60, 3) 0
conv2d_1 (Conv2D) (None, 156, 56, 20) 1520 input_1[0][0] input_2[0][0]
max_pooling2d_1 (MaxPooling2D) multiple 0 conv2d_1[0][0] conv2d_1[1][0] conv2d_2[0][0] conv2d_2[1][0] conv2d_5[0][0] conv2d_6[0][0]
input_2 (InputLayer) (None, 160, 60, 3) 0
conv2d_2 (Conv2D) (None, 74, 24, 25) 12525 max_pooling2d_1[0][0] max_pooling2d_1[1][0]
lambda_1 (Lambda) (None, 185, 60, 25) 0 max_pooling2d_1[2][0] max_pooling2d_1[3][0]
up_sampling2d_1 (UpSampling2D) (None, 185, 60, 25) 0 max_pooling2d_1[2][0] max_pooling2d_1[3][0]
lambda_2 (Lambda) (None, 185, 60, 25) 0 lambda_1[0][0] lambda_1[1][0]
add_1 (Add) (None, 185, 60, 25) 0 up_sampling2d_1[0][0] lambda_2[1][0]
add_2 (Add) (None, 185, 60, 25) 0 up_sampling2d_1[1][0] lambda_2[0][0]
conv2d_3 (Conv2D) (None, 37, 12, 25) 15650 add_1[0][0]
conv2d_4 (Conv2D) (None, 37, 12, 25) 15650 add_2[0][0]
conv2d_5 (Conv2D) (None, 35, 10, 25) 5650 conv2d_3[0][0]
conv2d_6 (Conv2D) (None, 35, 10, 25) 5650 conv2d_4[0][0]
concatenate_1 (Concatenate) (None, 17, 5, 50) 0 max_pooling2d_1[4][0] max_pooling2d_1[5][0]
flatten_1 (Flatten) (None, 4250) 0 concatenate_1[0][0]
dense_1 (Dense) (None, 500) 2125500 flatten_1[0][0]
dense_2 (Dense) (None, 2) 1002 dense_1[0][0]
Total params: 2,183,147 Trainable params: 2,183,147 Non-trainable params: 0
Model Compile Successful. number 0 in 100 start model.fit_generator Traceback (most recent call last): File "main.py", line 108, in
main(args.dataset_path)
File "main.py", line 24, in main
train(model, dataset_path)
File "main.py", line 49, in train
model.fit_generator(Data_Generator.flow(f,flag = flag_train),one_epoch,epoch_num,validation_data=Data_Generator.flow(f,train_or_validation=which_v
al_data,flag=flag_val),validation_steps=nb_val_samples, workers=1)
File "C:\ProgramData\Anaconda3\lib\site-packages\keras\legacy\interfaces.py", line 87, in wrapper
return func(*args, **kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\training.py", line 1961, in fit_generator
self._make_train_function()
File "C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\training.py", line 990, in _make_train_function
loss=self.total_loss)
TypeError: get_updates() missing 1 required positional argument: 'constraints'