|
31 | 31 | {
|
32 | 32 | "cell_type": "code",
|
33 | 33 | "execution_count": 2,
|
34 | | - "metadata": { |
35 | | - "collapsed": false |
36 | | - }, |
| 34 | + "metadata": {}, |
37 | 35 | "outputs": [
|
38 | 36 | {
|
39 | 37 | "name": "stdout",
|
|
74 | 72 | {
|
75 | 73 | "cell_type": "code",
|
76 | 74 | "execution_count": 3,
|
77 | | - "metadata": { |
78 | | - "collapsed": false |
79 | | - }, |
| 75 | + "metadata": {}, |
80 | 76 | "outputs": [
|
81 | 77 | {
|
82 | 78 | "name": "stdout",
|
|
105 | 101 | {
|
106 | 102 | "cell_type": "code",
|
107 | 103 | "execution_count": 4,
|
108 | | - "metadata": { |
109 | | - "collapsed": false |
110 | | - }, |
| 104 | + "metadata": {}, |
111 | 105 | "outputs": [],
|
112 | 106 | "source": [
|
113 | 107 | "x = Variable(torch.randn(10, 20), requires_grad=True)\n",
|
|
128 | 122 | {
|
129 | 123 | "cell_type": "code",
|
130 | 124 | "execution_count": 5,
|
131 | | - "metadata": { |
132 | | - "collapsed": false |
133 | | - }, |
| 125 | + "metadata": {}, |
134 | 126 | "outputs": [
|
135 | 127 | {
|
136 | 128 | "name": "stdout",
|
|
174 | 166 | {
|
175 | 167 | "cell_type": "code",
|
176 | 168 | "execution_count": 6,
|
177 | | - "metadata": { |
178 | | - "collapsed": false |
179 | | - }, |
| 169 | + "metadata": {}, |
180 | 170 | "outputs": [
|
181 | 171 | {
|
182 | 172 | "name": "stdout",
|
|
207 | 197 | {
|
208 | 198 | "cell_type": "code",
|
209 | 199 | "execution_count": 7,
|
210 | | - "metadata": { |
211 | | - "collapsed": false |
212 | | - }, |
| 200 | + "metadata": {}, |
213 | 201 | "outputs": [
|
214 | 202 | {
|
215 | 203 | "name": "stdout",
|
|
271 | 259 | {
|
272 | 260 | "cell_type": "code",
|
273 | 261 | "execution_count": 8,
|
274 | | - "metadata": { |
275 | | - "collapsed": false |
276 | | - }, |
| 262 | + "metadata": {}, |
277 | 263 | "outputs": [
|
278 | 264 | {
|
279 | 265 | "name": "stdout",
|
|
300 | 286 | {
|
301 | 287 | "cell_type": "code",
|
302 | 288 | "execution_count": 9,
|
303 | | - "metadata": { |
304 | | - "collapsed": false |
305 | | - }, |
| 289 | + "metadata": {}, |
306 | 290 | "outputs": [
|
307 | 291 | {
|
308 | 292 | "name": "stdout",
|
|
361 | 345 | {
|
362 | 346 | "cell_type": "code",
|
363 | 347 | "execution_count": 10,
|
364 | | - "metadata": { |
365 | | - "collapsed": false |
366 | | - }, |
| 348 | + "metadata": {}, |
367 | 349 | "outputs": [],
|
368 | 350 | "source": [
|
369 | 351 | "n.backward(torch.ones_like(n)) # 将 (w0, w1) 取成 (1, 1)"
|
|
372 | 354 | {
|
373 | 355 | "cell_type": "code",
|
374 | 356 | "execution_count": 11,
|
375 | | - "metadata": { |
376 | | - "collapsed": false |
377 | | - }, |
| 357 | + "metadata": {}, |
378 | 358 | "outputs": [
|
379 | 359 | {
|
380 | 360 | "name": "stdout",
|
|
423 | 403 | {
|
424 | 404 | "cell_type": "code",
|
425 | 405 | "execution_count": 12,
|
426 | | - "metadata": { |
427 | | - "collapsed": false |
428 | | - }, |
| 406 | + "metadata": {}, |
429 | 407 | "outputs": [
|
430 | 408 | {
|
431 | 409 | "name": "stdout",
|
|
447 | 425 | {
|
448 | 426 | "cell_type": "code",
|
449 | 427 | "execution_count": 13,
|
450 | | - "metadata": { |
451 | | - "collapsed": false |
452 | | - }, |
| 428 | + "metadata": {}, |
453 | 429 | "outputs": [],
|
454 | 430 | "source": [
|
455 | 431 | "y.backward(retain_graph=True) # 设置 retain_graph 为 True 来保留计算图"
|
|
458 | 434 | {
|
459 | 435 | "cell_type": "code",
|
460 | 436 | "execution_count": 14,
|
461 | | - "metadata": { |
462 | | - "collapsed": false |
463 | | - }, |
| 437 | + "metadata": {}, |
464 | 438 | "outputs": [
|
465 | 439 | {
|
466 | 440 | "name": "stdout",
|
|
491 | 465 | {
|
492 | 466 | "cell_type": "code",
|
493 | 467 | "execution_count": 16,
|
494 | | - "metadata": { |
495 | | - "collapsed": false |
496 | | - }, |
| 468 | + "metadata": {}, |
497 | 469 | "outputs": [
|
498 | 470 | {
|
499 | 471 | "name": "stdout",
|
|
568 | 540 | "$$\n",
|
569 | 541 | "\\left[\n",
|
570 | 542 | "\\begin{matrix}\n",
|
571 | | - "4 & 6 \\\\\n", |
572 | | - "3 & 9 \\\\\n", |
| 543 | + "4 & 3 \\\\\n", |
| 544 | + "2 & 6 \\\\\n", |
573 | 545 | "\\end{matrix}\n",
|
574 | 546 | "\\right]\n",
|
575 | 547 | "$$"
|
576 | 548 | ]
|
577 | 549 | },
|
578 | 550 | {
|
579 | 551 | "cell_type": "code",
|
580 | | - "execution_count": 17, |
| 552 | + "execution_count": 6, |
581 | 553 | "metadata": {
|
582 | 554 | "collapsed": true
|
583 | 555 | },
|
584 | 556 | "outputs": [],
|
585 | 557 | "source": [
|
586 | | - "x = Variable(torch.FloatTensor([[2, 3]]), requires_grad=True)\n", |
587 | | - "k = Variable(torch.zeros(1, 2))\n", |
| 558 | + "x = Variable(torch.FloatTensor([2, 3]), requires_grad=True)\n", |
| 559 | + "k = Variable(torch.zeros(2))\n", |
588 | 560 | "\n",
|
589 | | - "k[0, 0] = x[0, 0] ** 2 + 3 * x[0 ,1]\n", |
590 | | - "k[0, 1] = x[0, 1] ** 2 + 2 * x[0, 0]" |
| 561 | + "k[0] = x[0] ** 2 + 3 * x[1]\n", |
| 562 | + "k[1] = x[1] ** 2 + 2 * x[0]" |
591 | 563 | ]
|
592 | 564 | },
|
593 | 565 | {
|
594 | 566 | "cell_type": "code",
|
595 | | - "execution_count": 18, |
596 | | - "metadata": { |
597 | | - "collapsed": false |
598 | | - }, |
| 567 | + "execution_count": 7, |
| 568 | + "metadata": {}, |
599 | 569 | "outputs": [
|
600 | 570 | {
|
601 | 571 | "name": "stdout",
|
602 | 572 | "output_type": "stream",
|
603 | 573 | "text": [
|
604 | 574 | "Variable containing:\n",
|
605 | | - " 13 13\n", |
606 | | - "[torch.FloatTensor of size 1x2]\n", |
| 575 | + " 13\n", |
| 576 | + " 13\n", |
| 577 | + "[torch.FloatTensor of size 2]\n", |
607 | 578 | "\n"
|
608 | 579 | ]
|
609 | 580 | }
|
|
614 | 585 | },
|
615 | 586 | {
|
616 | 587 | "cell_type": "code",
|
617 | | - "execution_count": 19, |
618 | | - "metadata": { |
619 | | - "collapsed": false |
620 | | - }, |
| 588 | + "execution_count": 8, |
| 589 | + "metadata": {}, |
621 | 590 | "outputs": [],
|
622 | 591 | "source": [
|
623 | 592 | "j = torch.zeros(2, 2)\n",
|
624 | 593 | "\n",
|
625 | | - "k.backward(torch.FloatTensor([[1, 0]]), retain_graph=True)\n", |
626 | | - "j[:, 0] = x.grad.data\n", |
| 594 | + "k.backward(torch.FloatTensor([1, 0]), retain_graph=True)\n", |
| 595 | + "j[0] = x.grad.data\n", |
627 | 596 | "\n",
|
628 | | - "m.grad.data.zero_() # 归零之前求得的梯度\n", |
| 597 | + "x.grad.data.zero_() # 归零之前求得的梯度\n", |
629 | 598 | "\n",
|
630 | | - "k.backward(torch.FloatTensor([[0, 1]]))\n", |
631 | | - "j[:, 1] = x.grad.data" |
| 599 | + "k.backward(torch.FloatTensor([0, 1]))\n", |
| 600 | + "j[1] = x.grad.data" |
632 | 601 | ]
|
633 | 602 | },
|
634 | 603 | {
|
635 | 604 | "cell_type": "code",
|
636 | | - "execution_count": 20, |
637 | | - "metadata": { |
638 | | - "collapsed": false |
639 | | - }, |
| 605 | + "execution_count": 9, |
| 606 | + "metadata": {}, |
640 | 607 | "outputs": [
|
641 | 608 | {
|
642 | 609 | "name": "stdout",
|
643 | 610 | "output_type": "stream",
|
644 | 611 | "text": [
|
645 | 612 | "\n",
|
646 | | - " 4 6\n", |
647 | | - " 3 9\n", |
| 613 | + " 4 3\n", |
| 614 | + " 2 6\n", |
648 | 615 | "[torch.FloatTensor of size 2x2]\n",
|
649 | 616 | "\n"
|
650 | 617 | ]
|
|
664 | 631 | ],
|
665 | 632 | "metadata": {
|
666 | 633 | "kernelspec": {
|
667 | | - "display_name": "mx", |
| 634 | + "display_name": "Python 3", |
668 | 635 | "language": "python",
|
669 | | - "name": "mx" |
| 636 | + "name": "python3" |
670 | 637 | },
|
671 | 638 | "language_info": {
|
672 | 639 | "codemirror_mode": {
|
|
678 | 645 | "name": "python",
|
679 | 646 | "nbconvert_exporter": "python",
|
680 | 647 | "pygments_lexer": "ipython3",
|
681 | | - "version": "3.6.0" |
| 648 | + "version": "3.6.3" |
682 | 649 | }
|
683 | 650 | },
|
684 | 651 | "nbformat": 4,
|
|
0 commit comments