-
Notifications
You must be signed in to change notification settings - Fork 748
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
Several observations during the empirical study #4
Comments
1&2) I looked at the code, it could be that there is a bug when I set up the exponential decaying learning rate. Maybe it should be
|
Hi Joel, I think your finding is right. This mnist example https://github.com/tensorflow/tensorflow/blob/master/tensorflow/models/image/mnist/convolutional.py#L245 discusses the same thing. However, I have a question regarding your using global_step the
It seems to me, we should use In specific, my question is how do you connect Besides, during the training epochs, the prediction figures looks like the background (or opposite) of the raw image. Did you have similar observations even for your other data sets, if you have not tested the kaggle set. Thanks. surfreta |
Hi Joel,
I have run multiple experiments concurrently, and have several observations. Thanks for your insight.
When the batch size is setup as 20, or higher, I found that the learning rate (using momentum) starts to decrease only after more than 10 epochs. It keeps the same at the very beginning. This is what I described in the other thread. Right now, I can see the learning rate is decreasing as expected after epoch 10.
When the batch size is setup at 2 or 4. I can see the learning rate starts to decrease from the very first several epochs.
I am not very clear about how to explain this behavior.
In the competition, they use so-called dice coefficient, which is different with the loss function you are using, do you have any specific consideration for this?
I have been trying to test the adam optimizer.
It will work if I call it as
trainer = unet.Trainer(net, optimizer="adam", opt_kwargs=dict(learning_rate=0.0015))
However, it will give the following error message if I call it as
trainer = unet.Trainer(net, optimizer="adam", opt_kwargs=dict(momentum=0.0015))
It will give some error message as:
Traceback (most recent call last):
File "launcher.py", line 54, in
path = trainer.train(generator, "/data/unet_trained", training_iters=1406, epochs=100, display_step=100)
File "/test/u-net/ver6/unet.py", line 341, in train
init = self._initialize(training_iters, output_path, restore)
File "/test/u-net/ver6/unet.py", line 298, in _initialize
self.optimizer = self._get_optimizer(training_iters, global_step)
File "/test/u-net/ver6/unet.py", line 281, in _get_optimizer
**self.opt_kwargs).minimize(self.net.cost,
TypeError: init() got an unexpected keyword argument 'momentum'
After I reading your code, it seems to me the parameter in opt_kwargs should not impact at all regardless whether it is "momentum" or "learning_rate" because as shown
in the following, you always set it as "learning_rate" in opt_kwargs.pop. I think I may be not very clear about the mechanism of
opt_kwargs
The text was updated successfully, but these errors were encountered: