Git Product home page Git Product logo

Comments (7)

weinman avatar weinman commented on May 20, 2024 1

Whereas most activation functions (ReLU, sigmoid, tanh) have their phase change at zero, and random weight initializers tend to be symmetric about this point also, it's best to keep your raw input data nominally centered around zero.

from cnn_lstm_ctc_ocr.

weinman avatar weinman commented on May 20, 2024 1

Yes, similar to batch norm. The CTC loss layer utilizes raw scores as their input, taking the softmax internally.

from cnn_lstm_ctc_ocr.

oftenliu avatar oftenliu commented on May 20, 2024

so, like Batch Normalization?

from cnn_lstm_ctc_ocr.

oftenliu avatar oftenliu commented on May 20, 2024

and another question is that in last layer, the output should be the probability of each char, but you use Relu as activation function. why not softmax

from cnn_lstm_ctc_ocr.

oftenliu avatar oftenliu commented on May 20, 2024

ho, i use your project to train my plate data, the num of chars classes is 66,i change the num from 63 to 67 in "logits = model.rnn_layers( features, sequence_length, 66) " [train.py, line number = 178 ],and the failure message occurs like this:

Caused by op 'save/Assign_109', defined at:
File "D:/learn/ocr/cnn_lstm_ctc_ocr-master/ocr_cnn_lstm_ctc/src/train.py", line 209, in
tf.app.run()
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\platform\app.py", line 126, in run
_sys.exit(main(argv))
File "D:/learn/ocr/cnn_lstm_ctc_ocr-master/ocr_cnn_lstm_ctc/src/train.py", line 193, in main
save_model_secs=150)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\util\deprecation.py", line 250, in new_func
return func(*args, **kwargs)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\supervisor.py", line 318, in init
self._init_saver(saver=saver)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\supervisor.py", line 466, in _init_saver
saver = saver_mod.Saver()
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\saver.py", line 1338, in init
self.build()
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\saver.py", line 1347, in build
self._build(self._filename, build_save=True, build_restore=True)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\saver.py", line 1384, in _build
build_save=build_save, build_restore=build_restore)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\saver.py", line 835, in _build_internal
restore_sequentially, reshape)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\saver.py", line 494, in _AddRestoreOps
assign_ops.append(saveable.restore(saveable_tensors, shapes))
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\saver.py", line 185, in restore
self.op.get_shape().is_fully_defined())
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\ops\state_ops.py", line 283, in assign
validate_shape=validate_shape)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\ops\gen_state_ops.py", line 63, in assign
use_locking=use_locking, name=name)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 787, in _apply_op_helper
op_def=op_def)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 3392, in create_op
op_def=op_def)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 1718, in init
self._traceback = self._graph._extract_stack() # pylint: disable=protected-access

InvalidArgumentError (see above for traceback): Assign requires shapes of both tensors to match. lhs shape= [67] rhs shape= [63]
[[Node: save/Assign_109 = Assign[T=DT_FLOAT, _class=["loc:@rnn/logits/bias"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](rnn/logits/bias, save/RestoreV2:109)]]

Traceback (most recent call last):
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1322, in _do_call
return fn(*args)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1307, in _run_fn
options, feed_dict, fetch_list, target_list, run_metadata)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1409, in _call_tf_sessionrun
run_metadata)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [67] rhs shape= [63]
[[Node: save/Assign_109 = Assign[T=DT_FLOAT, _class=["loc:@rnn/logits/bias"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](rnn/logits/bias, save/RestoreV2:109)]]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "D:/learn/ocr/cnn_lstm_ctc_ocr-master/ocr_cnn_lstm_ctc/src/train.py", line 209, in
tf.app.run()
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\platform\app.py", line 126, in run
_sys.exit(main(argv))
File "D:/learn/ocr/cnn_lstm_ctc_ocr-master/ocr_cnn_lstm_ctc/src/train.py", line 196, in main
with sv.managed_session(config=session_config) as sess:
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\contextlib.py", line 81, in enter
return next(self.gen)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\supervisor.py", line 1000, in managed_session
self.stop(close_summary_writer=close_summary_writer)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\supervisor.py", line 828, in stop
ignore_live_threads=ignore_live_threads)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\coordinator.py", line 389, in join
six.reraise(*self._exc_info_to_raise)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\six.py", line 693, in reraise
raise value
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\supervisor.py", line 989, in managed_session
start_standard_services=start_standard_services)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\supervisor.py", line 726, in prepare_or_wait_for_session
init_feed_dict=self._init_feed_dict, init_fn=self._init_fn)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\session_manager.py", line 279, in prepare_session
config=config)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\session_manager.py", line 207, in _restore_checkpoint
saver.restore(sess, ckpt.model_checkpoint_path)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\saver.py", line 1802, in restore
{self.saver_def.filename_tensor_name: save_path})
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 900, in run
run_metadata_ptr)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1135, in _run
feed_dict_tensor, options, run_metadata)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1316, in _do_run
run_metadata)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1335, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [67] rhs shape= [63]
[[Node: save/Assign_109 = Assign[T=DT_FLOAT, _class=["loc:@rnn/logits/bias"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](rnn/logits/bias, save/RestoreV2:109)]]

Caused by op 'save/Assign_109', defined at:
File "D:/learn/ocr/cnn_lstm_ctc_ocr-master/ocr_cnn_lstm_ctc/src/train.py", line 209, in
tf.app.run()
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\platform\app.py", line 126, in run
_sys.exit(main(argv))
File "D:/learn/ocr/cnn_lstm_ctc_ocr-master/ocr_cnn_lstm_ctc/src/train.py", line 193, in main
save_model_secs=150)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\util\deprecation.py", line 250, in new_func
return func(*args, **kwargs)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\supervisor.py", line 318, in init
self._init_saver(saver=saver)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\supervisor.py", line 466, in _init_saver
saver = saver_mod.Saver()
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\saver.py", line 1338, in init
self.build()
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\saver.py", line 1347, in build
self._build(self._filename, build_save=True, build_restore=True)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\saver.py", line 1384, in _build
build_save=build_save, build_restore=build_restore)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\saver.py", line 835, in _build_internal
restore_sequentially, reshape)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\saver.py", line 494, in _AddRestoreOps
assign_ops.append(saveable.restore(saveable_tensors, shapes))
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\training\saver.py", line 185, in restore
self.op.get_shape().is_fully_defined())
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\ops\state_ops.py", line 283, in assign
validate_shape=validate_shape)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\ops\gen_state_ops.py", line 63, in assign
use_locking=use_locking, name=name)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 787, in _apply_op_helper
op_def=op_def)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 3392, in create_op
op_def=op_def)
File "D:\software\cuda\Anaconda2-4.3.1\envs\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 1718, in init
self._traceback = self._graph._extract_stack() # pylint: disable=protected-access

InvalidArgumentError (see above for traceback): Assign requires shapes of both tensors to match. lhs shape= [67] rhs shape= [63]
[[Node: save/Assign_109 = Assign[T=DT_FLOAT, _class=["loc:@rnn/logits/bias"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](rnn/logits/bias, save/RestoreV2:109)]]

this means i load 67 elements into variable with 63 elements , so my channges is invalid.

can you guide me to change this. thank you very much

from cnn_lstm_ctc_ocr.

weinman avatar weinman commented on May 20, 2024

@oftenliu I don't have any clear ideas why this would happen. One long-shot possibility is that you'd trained and saved a 63-dim model checkpoint (it's automatic) before making the change. train.py loads an existing checkpointed model (again, automatically), so that could be the case of the discrepancy.

To verify you're starting from scratch, either make sure ROOT/data/model is deleted or you use a different path for the --output flag.

from cnn_lstm_ctc_ocr.

oftenliu avatar oftenliu commented on May 20, 2024

Perfectly, As you said,i saved a 63-dim model checkpoint before making the change. You are really something!!! thank you

from cnn_lstm_ctc_ocr.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.