Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

I am trying to use weightnorm for mnist. I get the following error. #17

Open
vishyML opened this issue Nov 30, 2018 · 6 comments
Open

Comments

@vishyML
Copy link

vishyML commented Nov 30, 2018

Traceback (most recent call last):
File "C:\Users\vkswa\Downloads\weightnorm\cifar10_cnn.py", line 67, in
validation_data=(x_test, y_test))
File "C:\Users\vkswa\AppData\Local\Programs\Python\Python36\lib\site-packages\keras\engine\training.py", line 1008, in fit
self._make_train_function()
File "C:\Users\vkswa\AppData\Local\Programs\Python\Python36\lib\site-packages\keras\engine\training.py", line 498, in _make_train_function
loss=self.total_loss)
TypeError: get_updates() missing 1 required positional argument: 'constraints'

Any suggestion will be helpful

@vishyML
Copy link
Author

vishyML commented Nov 30, 2018

the cifar10.cnnpy was edited for minst as follows

'''Trains a simple convnet on the MNIST dataset.
Gets to 99.25% test accuracy after 12 epochs
(there is still a lot of margin for parameter tuning).
16 seconds per epoch on a GRID K520 GPU.
'''

from future import print_function
import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
from keras import backend as K

batch_size = 128
num_classes = 10
epochs = 12

input image dimensions

img_rows, img_cols = 28, 28

the data, split between train and test sets

(x_train, y_train), (x_test, y_test) = mnist.load_data()

if K.image_data_format() == 'channels_first':
x_train = x_train.reshape(x_train.shape[0], 1, img_rows, img_cols)
x_test = x_test.reshape(x_test.shape[0], 1, img_rows, img_cols)
input_shape = (1, img_rows, img_cols)
else:
x_train = x_train.reshape(x_train.shape[0], img_rows, img_cols, 1)
x_test = x_test.reshape(x_test.shape[0], img_rows, img_cols, 1)
input_shape = (img_rows, img_cols, 1)

x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
x_train /= 255
x_test /= 255
print('x_train shape:', x_train.shape)
print(x_train.shape[0], 'train samples')
print(x_test.shape[0], 'test samples')

convert class vectors to binary class matrices

y_train = keras.utils.to_categorical(y_train, num_classes)
y_test = keras.utils.to_categorical(y_test, num_classes)

model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3),
activation='relu',
input_shape=input_shape))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(num_classes, activation='softmax'))

from weightnorm import SGDWithWeightnorm
sgd_wn = SGDWithWeightnorm(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss=keras.losses.categorical_crossentropy,optimizer=sgd_wn,
metrics=['accuracy'])

model.fit(x_train, y_train,
batch_size=batch_size,
epochs=epochs,
verbose=1,
validation_data=(x_test, y_test))
score = model.evaluate(x_test, y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])

@mirfan899
Copy link

Same issue for me too. Code is two years old (2016) and Keras current version is 2.2.4

@vishyML
Copy link
Author

vishyML commented Dec 7, 2018

I am currently using keras 2.2.2. Did it work for you when you upgraded to 2.2.4 ?

@mirfan899
Copy link

Use this repository it has latest implementation https://github.com/krasserm/weightnorm

@vishyML
Copy link
Author

vishyML commented Dec 10, 2018 via email

@exowanderer
Copy link

PR #13 fixes this issue.

And TRAVIS says that there are no conflicts with the repo. Is @openai trying to keep this compatible with older versions of Keras? If so, why?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants