abonnement Unibet Coolblue Bitvavo
pi_77128093
TVP
pi_77130700
Thanks voor je tip Glowmouse, maar diag zorgt meteen voor een out of memory error (zelfs op 64-bits)...
  vrijdag 22 januari 2010 @ 10:32:39 #28
75592 GlowMouse
l'état, c'est moi
pi_77131870
dan is hij zeker geen 130x25
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_77135105
quote:
Op vrijdag 22 januari 2010 10:32 schreef GlowMouse het volgende:
dan is hij zeker geen 130x25
Nee, 130000*25
  vrijdag 22 januari 2010 @ 12:18:19 #30
75592 GlowMouse
l'état, c'est moi
pi_77135351
1
2
3
4
5
6
7
A = rand(130000,25);
tic
for i =1:130000
C(i,:) = A(i,:) ./ sum(A(i,:));
end
toc
Elapsed time is 0.215766 seconds.

gek genoeg is parfor niet sneller. En nog sneller:
1
2
3
4
5
A = rand(130000,25);
tic
A = A .* repmat(sum(A,2), 1, 25);
toc
Elapsed time is 0.045120 seconds.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_77139193
1
2
3
tic
Logit_function(b0);
toc


Elapsed time is gemiddeld zo'n 1.6 sec.

waardoor het gehele optimaliseren 2 uur duurt voor een simpel model (+/- 5500 functie evaluaties) :(
  vrijdag 22 januari 2010 @ 14:20:28 #32
75592 GlowMouse
l'état, c'est moi
pi_77140010
totale functie?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_77140578
quote:
Op vrijdag 22 januari 2010 14:20 schreef GlowMouse het volgende:
totale functie?
?
  vrijdag 22 januari 2010 @ 14:38:25 #34
75592 GlowMouse
l'état, c'est moi
pi_77140764
wat is de complete code?

en nog beter:
1
2
3
4
5
6
7
8
>> A = rand(130000,25);
tic
B = sum(A,2);
for i = 1:25
A(:,i) = A(:,i) .* B;
end
toc
Elapsed time is 0.025278 seconds.

eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  vrijdag 22 januari 2010 @ 14:43:23 #35
37885 BlackSheep
Supermellowman
pi_77140973
quote:
Op donderdag 21 januari 2010 22:10 schreef Citizen.Erased het volgende:
tvp
Marketing Communications cijfers staan erop, tevens tvp!
Conquering myself until I see another hurdle approaching. Say you can, say you will!
  vrijdag 22 januari 2010 @ 14:49:48 #36
231574 automatic_
muppetinnetje.
pi_77141212
quote:
Op vrijdag 22 januari 2010 14:43 schreef BlackSheep het volgende:

[..]

Marketing Communications cijfers staan erop, tevens tvp!
Ik heb jou vandaag gespot
"It's good to be open-minded, but not so open that your brains fall out."
pi_77142108
quote:
Op vrijdag 22 januari 2010 14:38 schreef GlowMouse het volgende:
wat is de complete code?

en nog beter:
[ code verwijderd ]


Mijn supervisor houd niet van loops

We hebben er net samen naar gekeken en hebben hem al gereduceerd naar 0.75sec. Eens kijken of jouw truukje nog meer winst oplevert
pi_77142242
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function ll = Logit_function(b)
%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%
%                   My first logit model (homogenous)         %
%                           -function-                        %
%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%
% Set global variables
global cas alt brd ind ava x1 x2 ind_y;

% Define numerator and denominator (first column is reference alternative)
num     = (exp((x1(:,1+brd:(alt*brd)+ind)*b))).*x2;

numm    = reshape(num,alt,(cas/alt))'; % reshape numerator

denn     = repmat(sum(numm,2),1,alt); % vector of hh/trip sums: columns repeated for the # of alternatives

% Define logprobabilities
logp    = log(numm./denn);

% In the case of an availability variable we have a zero element where an
% alternative is not available: the log-probability will equal -inf. We
% replace these log-probabilities by 0. This has no effect on optimization,
% as the value remains irrespective of the betas.
if ava==1,
logp(find(isinf(logp))') = 0;
end;

% Log-likelihood function (given that MATLAB minimizes the function we add
% the minus sign!)
ll      = -sum(logp(ind_y));

end


Sorry het is echt een mess zie ik nu als je niet weet wat de variabelen inhouden.
pi_77144717
quote:
Op vrijdag 22 januari 2010 14:43 schreef BlackSheep het volgende:

[..]

Marketing Communications cijfers staan erop, tevens tvp!
Heb je het gehaald? Ik had een 7.8 voor het tentamen en 8 als eindcijfer dus
pi_77145664
quote:
Op vrijdag 22 januari 2010 16:13 schreef Citizen.Erased het volgende:

[..]

Heb je het gehaald? Ik had een 7.8 voor het tentamen en 8 als eindcijfer dus
Niceeee
Ik zeg altijd maar zo, met drie wielen heb je nog geen auto.
pi_77145986
quote:
Op vrijdag 22 januari 2010 16:13 schreef Citizen.Erased het volgende:

[..]

Heb je het gehaald? Ik had een 7.8 voor het tentamen en 8 als eindcijfer dus
Gaat het nog lukken met het gemiddelde... Meestal zijn er 2/3 van de 50 cum laude bij de uitreiking..
pi_77146968
quote:
Op vrijdag 22 januari 2010 16:44 schreef arj1o1 het volgende:

[..]

Gaat het nog lukken met het gemiddelde... Meestal zijn er 2/3 van de 50 cum laude bij de uitreiking..
Heb geen idee of dat haalbaar is voor mij. Cum Laude moet je toch hoger dan een 8 scoren? Dat gaat me waarschijnlijk niet in een keer lukken.
  vrijdag 22 januari 2010 @ 17:48:54 #43
75592 GlowMouse
l'état, c'est moi
pi_77148574
quote:
Op vrijdag 22 januari 2010 15:17 schreef arj1o1 het volgende:

[ code verwijderd ]

Sorry het is echt een mess zie ik nu als je niet weet wat de variabelen inhouden.
- functions werken met parameters, niet met globals
- num kun je voor denn al unsetten, scheelt geheugen; numm en denn kunnen ook vrij snel weg
- je kijkt alleen naar logp(ind_y) maar rekent de rest van logp wel uit: zonde
- je doet eerst de logaritme en dan de som; logaritme is kostbaar want werkt met convergentie van powerseries; eerst product en dan logaritme is een heel stuk sneller (wel opletten bij nauwkeurigheid, ik weet zo niet welke numeriek instabieler is maar misschien moet je het opdelen in groepjes en telkens de logaritme van het product van 25 elementen pakken, dat levert al een factor 10 winst op voor de logaritmestap).
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_77151068
quote:
Op vrijdag 22 januari 2010 17:48 schreef GlowMouse het volgende:

[..]

- functions werken met parameters, niet met globals
Klopt, maar ik werk ook met KNITRO (ktrlink), welke miet met inputvariabelen overweg kan
Voor fminunc zou dit wel kunnen.
quote:
- num kun je voor denn al unsetten, scheelt geheugen; numm en denn kunnen ook vrij snel weg
Dat klopt, maar qua snelheid heb ik niet het idee dat dit wat uitmaakt. Enkel voor het geheugen?
quote:
- je kijkt alleen naar logp(ind_y) maar rekent de rest van logp wel uit: zonde
- je doet eerst de logaritme en dan de som; logaritme is kostbaar want werkt met convergentie van powerseries; eerst product en dan logaritme is een heel stuk sneller (wel opletten bij nauwkeurigheid, ik weet zo niet welke numeriek instabieler is maar misschien moet je het opdelen in groepjes en telkens de logaritme van het product van 25 elementen pakken, dat levert al een factor 10 winst op voor de logaritmestap).
Hier ga ik zo even mee spelen.

Thanks!
  vrijdag 22 januari 2010 @ 19:17:48 #45
75592 GlowMouse
l'état, c'est moi
pi_77151616
KNITRO heb ik laatst ook gebruikt, daar zit een mooi stuk theorie achter

Vars unsetten helpt alleen voor snelheid als je te weinig geheugen hebt.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_77153146
Wat me overigens ook zon 50% opleverde was de matrix met alternative dummies sparse te zetten.
pi_77154015
haaai
Op maandag 24 augustus 2009 11:04 schreef Salvad0R het volgende:
Aan alle chicks; eet/drink geen light producten, krijg je tumoren van.
  vrijdag 22 januari 2010 @ 20:18:13 #48
231574 automatic_
muppetinnetje.
pi_77154060
Hoi!
"It's good to be open-minded, but not so open that your brains fall out."
  vrijdag 22 januari 2010 @ 21:56:38 #49
37885 BlackSheep
Supermellowman
pi_77158549
quote:
Op vrijdag 22 januari 2010 16:13 schreef Citizen.Erased het volgende:

[..]

Heb je het gehaald? Ik had een 7.8 voor het tentamen en 8 als eindcijfer dus
Das zeer netjes Ik heb een 7 als eindpunt!
Conquering myself until I see another hurdle approaching. Say you can, say you will!
pi_77158715
quote:
Op vrijdag 22 januari 2010 21:56 schreef BlackSheep het volgende:

[..]

Das zeer netjes Ik heb een 7 als eindpunt!
Ook niet verkeerd. 40% van de mensen heeft het bodemcijfer niet eens gehaald. Ben blij dat ik ook dat vak nu afgerond heb. Nu nog even wachten op het punt van Channel Management en dan heb ik mijn punten binnen.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')