Created
May 20, 2020 05:28
-
-
Save langheran/6a23b354f592e7350a48db301e444cbc to your computer and use it in GitHub Desktop.
TestPGM3-OCR-Learning
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "scrolled": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "load Test1X.mat\n", | |
| "load Test1Y.mat" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 2, | |
| "metadata": { | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "Variables in the current scope:\n", | |
| "\n", | |
| " Attr Name Size Bytes Class\n", | |
| " ==== ==== ==== ===== ===== \n", | |
| " Test1X 80x129 82560 double\n", | |
| " Test1Y 80x1 640 double\n", | |
| " ans 1x5 5 char\n", | |
| "\n", | |
| "Total is 10405 elements using 83205 bytes\n", | |
| "\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "whos" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 3, | |
| "metadata": { | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "'LRTrainSGD' is a function from the file C:\\Users\\langh\\Dropbox\\MCC-I Masters\\PGM\\PGM3\\Week1\\PA-CRF-Learning-For-OCR-Release\\LRTrainSGD.m\n", | |
| "\n", | |
| " thetaOpt = LRTrainSGD(X, y, lambda) trains a logistic regression\n", | |
| " classifier using stochastic gradient descent. It returns the optimal theta values. \n", | |
| "\n", | |
| " Inputs:\n", | |
| " X data. (numInstances x numFeatures matrix)\n", | |
| " X(:,1) is all ones, i.e., it encodes the intercept/bias term.\n", | |
| " y data labels. (numInstances x 1 vector)\n", | |
| " lambda (L2) regularization parameter. (scalar)\n", | |
| "\n", | |
| " Outputs:\n", | |
| " thetaOpt optimal LR parameters. (numFeatures x 1 vector)\n", | |
| "\n", | |
| " Copyright (C) Daphne Koller, Stanford Univerity, 2012\n", | |
| "\n", | |
| "\n", | |
| "Additional help for built-in functions and operators is\n", | |
| "available in the online version of the manual. Use the command\n", | |
| "'doc <topic>' to search the manual index.\n", | |
| "\n", | |
| "Help and information about Octave is also available on the WWW\n", | |
| "at https://www.octave.org and via the [email protected]\n", | |
| "mailing list.\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "help LRTrainSGD" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "** Warning: Cannot interrupt Octave on Windows\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "thetaOpt = LRTrainSGD(Test1X, Test1Y, 0)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 4, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "'LRCostSGD' is a function from the file C:\\Users\\langh\\Dropbox\\MCC-I Masters\\PGM\\PGM3\\Week1\\PA-CRF-Learning-For-OCR-Release\\LRCostSGD.m\n", | |
| "\n", | |
| " [cost, grad] = LRCostSGD(X, y, theta, lambda, i) calculates the LR cost / objective\n", | |
| " function with respect to data instance (i mod n), given the LR classifier parameterized \n", | |
| " by theta and where n = the number of data instances. Also returns the gradient of \n", | |
| " the cost function with respect to data instance (i mod n).\n", | |
| " The aim of LR training is to find the theta that minimizes this function.\n", | |
| "\n", | |
| " Inputs:\n", | |
| " X data. (numInstances x numFeatures matrix)\n", | |
| " X(:,1) is all ones, i.e., it encodes the intercept/bias term.\n", | |
| " y data labels. (numInstances x 1 vector)\n", | |
| " theta LR parameters. (numFeatures x 1 vector)\n", | |
| " lambda (L2) regularization parameter. (scalar)\n", | |
| " i index of a data sample. (integer from 1:size(X,1))\n", | |
| "\n", | |
| " Outputs:\n", | |
| " cost cost function of the LR classifier evaluated on (X,y). (scalar)\n", | |
| " grad gradient of the cost function. (numFeatures x 1 vector)\n", | |
| "\n", | |
| " Copyright (C) Daphne Koller, Stanford Univerity, 2012\n", | |
| "\n", | |
| "\n", | |
| "Additional help for built-in functions and operators is\n", | |
| "available in the online version of the manual. Use the command\n", | |
| "'doc <topic>' to search the manual index.\n", | |
| "\n", | |
| "Help and information about Octave is also available on the WWW\n", | |
| "at https://www.octave.org and via the [email protected]\n", | |
| "mailing list.\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "help LRCostSGD" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 11, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "'LRPredict' is a function from the file C:\\Users\\langh\\Dropbox\\MCC-I Masters\\PGM\\PGM3\\Week1\\PA-CRF-Learning-For-OCR-Release\\LRPredict.m\n", | |
| "\n", | |
| " pred = LRPredict(X, theta) uses the LR classifier encoded by theta\n", | |
| " to predict the labels on data X.\n", | |
| "\n", | |
| " Inputs:\n", | |
| " X data. (numInstances x numFeatures matrix)\n", | |
| " theta LR parameters. (numFeatures x 1 vector)\n", | |
| "\n", | |
| " Outputs:\n", | |
| " pred predicted labels for X. (numInstances x 1 binary vector).\n", | |
| "\n", | |
| " Copyright (C) Daphne Koller, Stanford Univerity, 2012\n", | |
| "\n", | |
| "\n", | |
| "Additional help for built-in functions and operators is\n", | |
| "available in the online version of the manual. Use the command\n", | |
| "'doc <topic>' to search the manual index.\n", | |
| "\n", | |
| "Help and information about Octave is also available on the WWW\n", | |
| "at https://www.octave.org and via the [email protected]\n", | |
| "mailing list.\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "help LRPredict" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 12, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "'LRAccuracy' is a function from the file C:\\Users\\langh\\Dropbox\\MCC-I Masters\\PGM\\PGM3\\Week1\\PA-CRF-Learning-For-OCR-Release\\LRAccuracy.m\n", | |
| "\n", | |
| " function acc = LRAccuracy(GroundTruth, Predictions) compares the \n", | |
| " vector of predictions with the vector of ground truth values, \n", | |
| " and returns the accuracy (fraction of predictions that are correct).\n", | |
| "\n", | |
| " Input:\n", | |
| " GroundTruth (numInstances x 1 vector) \n", | |
| " Predictions (numInstances x 1 vector) \n", | |
| "\n", | |
| " Output:\n", | |
| " err (scalar between 0 and 1 inclusive)\n", | |
| "\n", | |
| " Copyright (C) Daphne Koller, Stanford Univerity, 2012\n", | |
| "\n", | |
| "\n", | |
| "Additional help for built-in functions and operators is\n", | |
| "available in the online version of the manual. Use the command\n", | |
| "'doc <topic>' to search the manual index.\n", | |
| "\n", | |
| "Help and information about Octave is also available on the WWW\n", | |
| "at https://www.octave.org and via the [email protected]\n", | |
| "mailing list.\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "help LRAccuracy" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 6, | |
| "metadata": { | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "x1 = 1\n", | |
| "x2 = 2\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "x = {1 2};\n", | |
| "[x1,x2] = x{:}" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 13, | |
| "metadata": { | |
| "scrolled": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "ans = 2\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "x = [1 2];\n", | |
| "x(2)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "CliqueTreeCalibrate(P, 0)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 20, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "Variables in the current scope:\n", | |
| "\n", | |
| " Attr Name Size Bytes Class\n", | |
| " ==== ==== ==== ===== ===== \n", | |
| " sampleCalibratedTree 1x1 10912 struct\n", | |
| " sampleFeatureCounts 1x2366 18928 double\n", | |
| " sampleGrad 1x2366 18928 double\n", | |
| " sampleLogZ 1x1 8 double\n", | |
| " sampleModelFeatureCounts 1x2366 18928 double\n", | |
| " sampleModelParams 1x1 24 struct\n", | |
| " sampleNLL 1x1 8 double\n", | |
| " sampleRegularizationCost 1x1 8 double\n", | |
| " sampleRegularizationGradient 1x2366 18928 double\n", | |
| " sampleTheta 1x2366 18928 double\n", | |
| " sampleUncalibratedTree 1x1 10912 struct\n", | |
| " sampleWeightedFeatureCounts 1x2366 18928 double\n", | |
| " sampleX 3x32 768 double\n", | |
| " sampleY 1x3 24 double\n", | |
| "\n", | |
| "Total is 14301 elements using 136232 bytes\n", | |
| "\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "clear\n", | |
| "load \"Part2Sample.mat\"\n", | |
| "whos" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 15, | |
| "metadata": { | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "error: graphics_toolkit: gnuplot version too old.\n", | |
| "error: called from\n", | |
| " graphics_toolkit at line 88 column 9\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "gnuplot_binary 'C:\\\\Program Files\\\\gnuplot\\\\bin\\\\gnuplot.exe'\n", | |
| "graphics_toolkit(\"gnuplot\")" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "gnuplot_binary 'C:\\\\Octave\\\\Octave-5.2.0\\\\mingw64\\\\bin\\\\gnuplot.exe'" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 8, | |
| "metadata": { | |
| "scrolled": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "error: graphics_toolkit: gnuplot version too old.\n", | |
| "error: called from\n", | |
| " graphics_toolkit at line 88 column 9\n", | |
| "\n", | |
| "error: graphics_toolkit: gnuplot version too old.\n", | |
| "error: called from\n", | |
| " graphics_toolkit at line 88 column 9\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "%plot gnuplot\n", | |
| "graphics_toolkit(\"gnuplot\")" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "%plot fltk" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 6, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "%plot -b inline:fltk" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 5, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "error: graphics_toolkit: gnuplot version too old.\n", | |
| "error: called from\n", | |
| " graphics_toolkit at line 88 column 9\n", | |
| "\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "%plot --format svg" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 7, | |
| "metadata": { | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "f = 1\n" | |
| ] | |
| }, | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "\u001b[1;31mInline plot failed, consider trying another graphics toolkit\n", | |
| "error: print: figure must be visible or qt toolkit must be used with __gl_window__ property 'on' or QT_OFFSCREEN feature available\n", | |
| "error: called from\n", | |
| " _make_figures>safe_print at line 125 column 7\n", | |
| " _make_figures at line 49 column 13\n", | |
| "\n", | |
| "\u001b[0m" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "f = figure()\n", | |
| "plot(rand(10,3))" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 6, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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4MFVq1Y9/fTTH374oYrxXLlypaury+FwPPHEE9/61rd++tOfvvfeeyrGw7Bz584nnniChE9t1qxZ5eXl7733XktLyzvvvLNw4UJ1N5Hf/va3Ozo6Tpw44ff7jx49eubMGdU7xwyhRqA+n0/FeIKAhCQ7Pp/v+eef37Bhw5o1a15//fXZs2erHRFatGjRq6++2tPTMzw8/Otf/1rdYF566SX8/6Srq2t8fHxwcFCt5SRmwYIFdrv9scceW7BgwcaNGx955JEjR46oGA9CSKfT7dy584EHHli3bt2jjz76+9//Xt14EEKfffZZZ2fnE088oXYgCCH01ltvHT9+/N133923b99777138eLFAwcOqBjPggUL9u7d+8ILL5SVldntdqvVOm/ePBXjYaPT6dj6unBGoGoRhyU70njqqaeSk5OPHz9OwlrylVdeMRgMGzZsQAiZTKaCgoJLly6pG5LRaDSZTIcPH0YIOZ3OL774IikpadGiRWrF09fXFwgE8vPz8UO9Xq/u8jY7O5vdA5g3b97w8LB64dzkzTfffPjhh0lYXSGEzpw5s2TJEhyMXq8vKChQ93/RtWvXsrOzf/e73+GHjz76KCGZGyFUUlLym9/8hnnodrvVrUgHATskeens7BwfH9+9e3dSUhKeI1F3zkan0x09ehRv0q9fv3769GnVq3Y/+MEP9t+itLR048aNzz77rIrxOByOLVu2YDv58fHxkydPrlmzRsV4LBbL6Ogodm70+XzvvvtueXm5ivFg/vjHP65atUrtKG5SUlLS29s7Pj6OEPL5fOfPn1fXbfn8+fPPPPMM3oi8//77X3zxBQkfGYZwI1DYIcnL6dOnBwcH77vvPuaZf/zHf9y5c6da8Tz++ON/+tOfli9fXlxcbLfbH3nkEdz2BBi++93vdnd3P/DAA0uXLj19+vSGDRsqKytVjCc1NXX37t0//OEPFy5cODw8vHLlSiyRUpHR0VGn01lUVKRuGAxr1649ffp0RUXF8uXLz507Z7FYcA1ALVatWvXmm29+5zvfycnJOX/+/IsvvsjWOKgL4Uag4GWnRYaHhy9fvvz3f//3qampasdCKGNjY3hmi5Cq1MzMjN1uz83NJWSegUDGxsb6+vruueeee++9V+1YEEJoeHj46tWrJSUl6iosOJmYmPj444/vu+++OXPmqB3LHUBCAgAAAIiAlI0kAAAAoHEgIQEAAABEAAkJAAAAIAJISAAAAAARQEICAAAAiAASEgAAAEAEkJAAAAAAIoCEBAAAABABJCQAAACACCAhAQAAAEQACQkAAAAgAkhIAAAAABFAQgIAAACIABISAAAAQASQkAAAAAAigIQEAAAAEAEkJAAAAIAIICEBAAAARAAJCQAAACACSEgAAAAAEUBCAgAAAIgAEhIAAABABJCQAAAAACKAhAQAAAAQASQkAAAAgAggIQEAAABEAAkJAAAAIAJISAAAAAAR/P9mDI2AcHKnywAAAABJRU5ErkJggg==\n", | |
| "text/plain": [ | |
| "<IPython.core.display.Image object>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "plot(rand(10,3))" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 25, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "The system cannot find the path specified.\n", | |
| "\n", | |
| "ans =\n", | |
| "{\n", | |
| " [1,1] = fltk\n", | |
| " [1,2] = gnuplot\n", | |
| "}\n", | |
| "\n", | |
| "\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "!octave --eval \"available_graphics_toolkits\"" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 8, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "error: graphics_toolkit(117): out of bound 7 (note: variable 'graphics_toolkit' shadows function)\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "graphics_toolkit(\"gnuplot\");" | |
| ] | |
| } | |
| ], | |
| "metadata": { | |
| "kernelspec": { | |
| "display_name": "Matlab", | |
| "language": "matlab", | |
| "name": "matlab" | |
| }, | |
| "language_info": { | |
| "codemirror_mode": "octave", | |
| "file_extension": ".m", | |
| "help_links": [ | |
| { | |
| "text": "MetaKernel Magics", | |
| "url": "https://metakernel.readthedocs.io/en/latest/source/README.html" | |
| } | |
| ], | |
| "mimetype": "text/x-octave", | |
| "name": "matlab", | |
| "version": "0.16.9" | |
| }, | |
| "toc": { | |
| "base_numbering": 1, | |
| "nav_menu": {}, | |
| "number_sections": true, | |
| "sideBar": true, | |
| "skip_h1_title": false, | |
| "title_cell": "Table of Contents", | |
| "title_sidebar": "Contents", | |
| "toc_cell": false, | |
| "toc_position": {}, | |
| "toc_section_display": true, | |
| "toc_window_display": false | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 2 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment