Mercurial > pylearn
annotate doc/v2_planning/arch_src/plugin_JB_comments_YB.txt @ 1244:6d97f32c3fdf
Merged
author | Olivier Delalleau <delallea@iro> |
---|---|
date | Thu, 23 Sep 2010 12:11:44 -0400 |
parents | 316410a38f6f |
children | 808e38dce8d6 |
rev | line source |
---|---|
1238
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
1 |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
2 YB. I am very worried about this proposal. It looks again like we would be |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
3 creating another language to replace one we already have, namely python, |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
4 mainly so that we could have introspection and programmable changes |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
5 into an existing control flow structure (e.g. the standard DBN code). |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
6 |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
7 I feel that the negatives outweigh the advantages. |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
8 |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
9 Please correct me: |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
10 |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
11 Disadvantages: |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
12 |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
13 * much more difficult to read |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
14 * much more difficult to debug |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
15 |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
16 Advantages: |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
17 |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
18 * easier to serialize (can't we serialize an ordinary Python class created by a normal user?) |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
19 * possible but not easier to programmatically modify existing learning algorithms |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
20 (why not the usual constructor parameters and hooks, |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
21 when possible, and just create another code for a new DBN variant when it can't fit?) |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
22 * am I missing something? |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
23 |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
24 I am not convinced that any of the stated advantages can't be achieved in more traditional ways. |
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
25 |
1242
316410a38f6f
comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents:
1238
diff
changeset
|
26 RP comment: James or anybody else correct me if I'm wrong. What I think James |
316410a38f6f
comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents:
1238
diff
changeset
|
27 proposed is just a way encapsulating different steps of the program in some |
316410a38f6f
comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents:
1238
diff
changeset
|
28 classes. These classes are serializable. They are not a programming language |
316410a38f6f
comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents:
1238
diff
changeset
|
29 per se. The way I see it is like dividing your program in a set of functions. |
316410a38f6f
comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents:
1238
diff
changeset
|
30 Each function is a control flow element applied to something ( like a CALL to |
316410a38f6f
comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents:
1238
diff
changeset
|
31 a python function ). The idea is to wrap this functions around something to |
316410a38f6f
comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents:
1238
diff
changeset
|
32 make them serializable, and also offer the added advantage that you have a |
316410a38f6f
comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents:
1238
diff
changeset
|
33 graph that presents the order in which you should call the functions and you |
316410a38f6f
comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents:
1238
diff
changeset
|
34 can play with that order. |
1238
067b2f9ba122
comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff
changeset
|
35 |
1242
316410a38f6f
comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents:
1238
diff
changeset
|
36 That is why I was trying to convince James to re-write things ( using some |
316410a38f6f
comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents:
1238
diff
changeset
|
37 syntactic sugar) to make it look less intimidating ( I believe it can look |
316410a38f6f
comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents:
1238
diff
changeset
|
38 much more "traditional" that it looks right now). I think a programming |
316410a38f6f
comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents:
1238
diff
changeset
|
39 language might also be a overloaded term that so we might speak about |
316410a38f6f
comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents:
1238
diff
changeset
|
40 different things. But if all that his proposal does is to offer some wrapper |
316410a38f6f
comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents:
1238
diff
changeset
|
41 around python function that makes them serializable, and generate a execution |
316410a38f6f
comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents:
1238
diff
changeset
|
42 order graph in which you can possible do simple operations ( like |
316410a38f6f
comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents:
1238
diff
changeset
|
43 substitutions and replacements) I would not call it a programming language. |
316410a38f6f
comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents:
1238
diff
changeset
|
44 |
316410a38f6f
comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents:
1238
diff
changeset
|
45 I think the advantage of making the program aware where in its own execution |
316410a38f6f
comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents:
1238
diff
changeset
|
46 flow it is and what is its execution flow can be quite useful for automating |
316410a38f6f
comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents:
1238
diff
changeset
|
47 some of the things we want. |