Der Titel lautet "Vor der Einführung in die C-Programmierung. % 83% 9F% E3% 83% B3% E3% 82% B0% E5% 85% A5% E9% 96% 80% E4% BB% A5% E5% 89% 8D-% E6% 9D% 91% E5% B1% B1-% E5% 85% AC% E4% BF% 9D / dp / 4839920648 / ref = sr_1_2? adgrpid = 51730019485 & gclid = EAIaIQobChMI0Puty8bE5gIVQ7aWCh2ACQjIEAAYASAAEgIQqPD_BwE & hvadid = 338.517.772.944 & hvdev = c & hvlocphy = 1.028.852 & hvnetw = g & hvpos = 1T1 & hvqmt = e & hvrand = 1357865022882897559 & hvtargid = KWD-333.217.628.374 & hydadcr = 27264_11561112 & jp -ad-ap = 0 & keywords =% E3% 83% 97% E3% 83% AD% E3% 82% B0% E3% 83% A9% E3% 83% 9F% E3% 83% B3% E3% 82% B0% E5% 85% A5% E9% 96% 80% E4% BB% A5% E5% 89% 8D & qid = 1576856073 & sr = 8-2) Autor: Ausgeliehen von der Murayama Public Insurance. Mit anderen Worten, ich lerne kein maschinelles Lernen, aber für das maschinelle Lernen sind viele Fähigkeiten erforderlich. Ich werde reden.
Zunächst möchte ich mich vorstellen.
Sowohl die Grundschule als auch die Graduiertenschule befanden sich im Labor für künstliche Intelligenz. Zuerst habe ich viel geforscht, basierend auf der Boltzmann-Maschine usw. Aus irgendeinem Grund wurde ich als Doktorand von einem Unternehmen als Teilzeit-Forschungsjob eingestellt. Ich habe die Masterarbeit abgeschlossen, nachdem ich dort die Forschungsergebnisse geschrieben hatte.
Ich war eine Person, die relativ ein Programm schreiben konnte, ** Ich kann überhaupt nicht nach unbekannten Wörtern suchen **, also Ich möchte die ganze Zeit Technologie lernen ...! Ich konnte nicht suchen, obwohl ich dachte Ich habe Tage des Leidens verbracht.
Nachdem ich das Labor betreten hatte, konnte ich die Existenz von Qiita und Python kennenlernen. Ich konnte maschinelles Lernen lernen.
Vielen Dank an Qiita, da ich nicht einmal suchen konnte, weil ich die Wörter nicht verstand Ich lernte das Wort nach und nach und konnte so maschinelles Lernen lernen.
Grundsätzlich ist dies das Ende von "Maschinelles Lernen, wie Sie gelernt haben". Der Rest ist wie ein Bonus, aber ich hoffe, Sie können ihn lesen. (Wie Kaugummi mit Spielzeug)
Diesmal danke an Qiita
Ich werde eine kurze Erklärung geben, indem ich die Begriffe wie z. Bitte gehe mit mir aus.
Maschinelles Lernen und Linux sind untrennbar miteinander verbunden. Mac ist nicht stark genug, Windows ist schwierig, Python zu setzen
Daher müssen Sie beim maschinellen Lernen in der Mitte Linux verwenden. Wir werden erklären, wie es geht, nützliche Befehle und notwendiges Wissen.
Windows 10 hat kürzlich eine Funktion namens * Windows Subsystem for Linux *. Auf diese Weise können Sie unter Windows eine Pseudo-Linux-Umgebung verwenden.
Sie können herausfinden, wie Sie es von Google installieren. Offizielles Microsoft-Tool.
SSH
Es steht für Secured Shell und ist SSH. Stellen Sie sich das als eine Funktion zum Anmelden bei einem Remote-Server vor. Mit anderen Worten, Sie können auf Remote-Server zugreifen.
Was mich bei der Verwendung von SSH glücklich macht, ist die Verwendung der Mac-Oberfläche. Die Berechnung selbst kann Linux überlassen werden. Es spielt auch keine Rolle, ob Ihre Benutzeroberfläche Mac oder Windows ist. Sie können entweder verwenden.
Möglicherweise möchten Sie SSH verwenden, während Sie es auf Ihrem Heimserver oder Laborserver nach außen öffnen. In diesem Fall, wenn Sie die folgenden Punkte in den Einstellungen auf sshd.conf beachten, haben Sie es im Grunde.
Wenn Sie SSH für die Authentifizierung mit öffentlichem Schlüssel verwenden, können Sie die Fernbedienung ohne Kennwort sicher eingeben. Verwenden wir die Authentifizierung mit öffentlichem Schlüssel. Wenn Sie es dem Internet aussetzen, haben Sie keine andere Wahl.
Der Mechanismus usw. wird hier nicht im Detail erklärt. Einfach gesagt
~ / .ssh / config
wie Identity File ~ / .ssh / id_rsa
Dann können Sie sich sicher anmelden. Bitte gg für Details.
tmux
Wenn Sie Berechnungen durchführen, während Sie eine Remoteverbindung mit SSH herstellen, Wenn das Netzwerk während einer langen Berechnungszeit getrennt wird, ** wird das Berechnungsergebnis auf nichts zurückgesetzt. ** ** **
Sie wollen den Staat behalten, auch wenn SSH abgeschnitten ist, oder? tmux kann das tatsächlich.
tmux hat das Konzept einer Sitzung. Dadurch kann das Pseudo-Terminal für immer im Prozess bleiben, selbst wenn das SSH abläuft.
Sie müssen tmux wahrscheinlich nicht installieren, da es wahrscheinlich in Ubuntu 18.04 LTS enthalten ist.
So starten Sie eine tmux-Sitzung
python
tmux new -s session_name
ist. Fühlen Sie sich frei, Sitzungsname zu nennen.
tmux bedient alles, indem es zuerst die Grundpräfix-Taste drückt. Der Präfixschlüssel ist standardmäßig "Strg + B", aber wenn Sie ihn auf "Strg + A" setzen Ich empfehle es, weil es große Fortschritte macht.
Wenn Sie die Sitzung selbst verlieren möchten, verwenden Sie "Abmelden".
Dies ist eine Operation namens Trennen. Drücken Sie "Präfix, d" in dieser Reihenfolge
Geben Sie "tmux a" in das Terminal ein
tmux kann den Bildschirm auch teilen. Wenn Sie das Präfix% eingeben, wird der Bildschirm vertikal geteilt. Wenn Sie das Präfix "" eingeben, wird der Bildschirm horizontal geknackt.
Tatsächlich können Sie auch die Uhr anzeigen. Sie können dies mit "tmux clock-mode" tun.
Sie können es auch mit dem Präfix "?" https://qiita.com/nmrmsys/items/03f97f5eabec18a3a18b Ich hoffe, Sie können auf diesen Artikel verweisen.
~/.tmux.conf
Sie können auch verschiedene Einstellungen für tmux vornehmen. Es gibt verschiedene Einstellungen, aber ich habe auf die folgenden zwei Artikel verwiesen.
Vom Master lernen. Grundeinstellungen von tmux.conf Anzeigen, ob die Präfix-Taste in tmux gedrückt wird
Die Einstellungen, die ich immer benutze, sind wie folgt.
#Präfixschlüssel C.-Wechseln Sie zu a<img width="727" alt="Screenshot 2019-12-21 1.33.27.png " src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182970/b5e6f309-53c3-0174-2b76-682a65156b75.png ">
set -g prefix C-a
# C-Unkey b Bindung
unbind C-b
#Laden Sie die Konfigurationsdatei neu
bind r source-file ~/.tmux.conf \; display "Reloaded!"
# C-a*C zum Programm in tmux in 2-Sende ein
bind C-a send-prefix
# |Teilen Sie den Bereich vertikal mit
bind | split-window -h
# -Teilen Sie den Bereich horizontal mit
bind - split-window -v
#Verwenden Sie ein 256-Farben-Terminal
set -g default-terminal "screen-256color"
#Überprüfen Sie, ob die Präfix-Taste gedrückt wurde
set-option -g status-left '#[fg=cyan,bg=#303030]#{?client_prefix,#[reverse],} #H[#S] #[default]'
Grundsätzlich reicht das aus.
htop
htop ist ein Tool, mit dem Sie Ressourcen anzeigen können.
Sie können sehen, wie viel CPU-Ressourcen tatsächlich damit geladen werden.
nvtop
nvtop ist die GPU-Version von htop.
Ist es so, als gäbe es htop und nvtop? Sie können auch sehen, ob Sie eine GPU verwenden.
In Ubuntu können Sie es im Fall von 19.04 mit "apt" eingeben, aber Grundsätzlich müssen Sie die Quelle erstellen.
vi/vim
Es besteht eine hohe Wahrscheinlichkeit, dass Sie unter Linux mit Dateien herumspielen, z. B. unter SSH. In einem solchen Fall werden Vi und Vim verwendet. Der Unterschied zwischen vi und vim ist vi + verschiedene Funktionen = vim. Es ist eine Menge Ärger, wenn Sie nur vi verwenden.
Sie können es mit den Befehlen vi
und vim
öffnen.
Grundsätzlich ist es in Ordnung, wenn Sie sich an Folgendes erinnern.
Grundsätzlich werden hier auch der Cursor bewegt, rückgängig gemacht und gesucht. Hier ist eine Liste von Funktionen, die nützlich sind, um sie zu kennen.
:q Fertig stellen
:q!erzwungene Kündigung
:w Überschreiben
:100 Gehen Sie zu Zeile 100
/Wortsuchwort(+n, um zum nächsten übereinstimmenden Wort zu gelangen)
u Undo(Strg in Windows+z-ähnliches Verhalten)
dd Aktuelle Zeile löschen(Strg in Windows+x-ähnliches Verhalten)
yy Aktuelle Zeile kopieren(ctrl+c-ähnliches Verhalten)
p einfügen(ctrl+v-ähnliches Verhalten)
Entspricht hjkl ← ↓ ↑ →(Wenn Sie auf einem Mac zh auf Japanisch eingeben, erhalten Sie ←.)
Drücken Sie die Taste "i" oder "O", um den Einfügemodus aufzurufen. Im Einfügemodus können Sie Zeichen eingeben. Drücken Sie ESC, um zum normalen Modus zurückzukehren. (Der Grund, warum die ESC-Taste auf dem Mac wiederhergestellt wurde, liegt an Vimmer ...?)
Für Details gibt es so viele Betriebsmethoden wie möglich, wenn Sie googeln. Bitte probieren Sie es aus
find
Es sucht buchstäblich nach der Datei.
find [start_dir]
In Bezug auf die Nutzung
find ~/ |grep Datei, die Sie identifizieren möchten
Sie können nach dem Speicherort der Datei suchen.
tree
Zeigt die Datei im Baumformat an. Ich benutze dies immer, wenn ich die gesamte Struktur verstehen will. Das Problem ist, dass viele Protokolle fließen (
wc
Überprüfen Sie die Anzahl der Dateizeilen Nützlich, wenn Sie wissen möchten, wie viele Zeilen eine tsv-Datei enthält Oder lass mich finden
df/du
Es wird die Dateigröße messen. df ist die Kapazität der gesamten Dateigröße, du zeigt dir die Größe jeder einzelnen Dateigröße.
df -h
Filesystem Size Used Avail Use% Mounted on
udev 16G 0 16G 0% /dev
tmpfs 3.2G 1.5M 3.2G 1% /run
/dev/sdb3 916G 33G 837G 4% /
tmpfs 16G 88K 16G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 16G 0 16G 0% /sys/fs/cgroup
Die Option -h
zeigt die Einheit für die Kapazität an.
Im Abschnitt Dateisystem befindet sich dev (Gerät) und sein spezifischer Name.
/ dev / sdb3 ist die konkrete Hardware wie SSD.
Es kann grundsätzlich sd [x] [n] genannt werden. Bitte gg für Details.
Wenn Sie dagegen die Größe der einzelnen Dateien anzeigen möchten, ist der Befehl du
wirksam.
Zum Beispiel, wenn Sie die Kapazitätsliste im aktuellen Ordner anzeigen möchten
du -hs ~/*
Anschließend wird die gesamte Dateikapazität angezeigt, die derzeit einzeln geladen wird. Es wird Ihnen zeigen, welches schwerer ist.
grep
Verwenden Sie diese Option, wenn Sie nur die relevante Notation aus einer großen Anzahl von Protokollen extrahieren möchten.
find ~/ | grep filename
Ich werde das Protokoll mit der Rohrverarbeitung senden, die besagt Es kann nur der Teil extrahiert werden, der dem Dateinamen entspricht Es unterstützt auch den später beschriebenen regulären Ausdruck.
cat
Sie können die Datei direkt ausgeben. Rohre kombinieren
cat /var/log/auth.log | grep sudo
Sie können eine Dateisuche durchführen.
less/head/tail
Als ein verdammt dummer großer Tsv namens 120GB gesendet wurde
Es dauert lange zu sterben, wenn Sie vim logfile.tsv
machen.
(Senden wir tsv auf dieser Ebene zunächst per Parkett!)
Lesen Sie in einem solchen Fall nur einen Teil des Befehls less. Es wird auf dem Bildschirm angezeigt. head zeigt die ersten Zeilen an. Schwanz zeigt die letzten Zeilen an.
jq
Dadurch sieht die JSON-Datei gut aus. Weitere Informationen finden Sie unter Einführung in die tägliche Verwendung des Befehls jq.
sed
Es wird die Zeichenfolge ersetzen.
s / a / b / g
→ Konvertiere a in b
Selbst im Ingenieurbereich wird / of s / oft von / g
oder Slack übersprungen.
Es ist eine gemeinsame Sprache.
Ich kenne Python, aber wie wäre es mit der Installation? Ist eine Person Ich weiß viel, aber ich frage mich, wie ich die Version unter Linux verwalten soll ... Empfohlen für Leute wie.
pyenv
Es wird die Python-Version für jeden Benutzer installiert. Klicken Sie hier für Details: [Permanente Aufbewahrungsversion] Setzen Sie pyenv + venv in ubuntu [Zögern Sie nicht mehr]
Nach der Installation von pyenv,
Geben Sie die gewünschte Python-Version mit pyenv install python-version
ein.
Grundsätzlich sollten Sie die einfachste wie Anakonda mitbringen.
Wie pyenv install 3.6.9
Dann wird Python in Ihren persönlichen Ordner gelegt, damit die Umgebung anderer Benutzer nicht verschmutzt wird.
venv
venv ist ein Python-Paketverwaltungstool. Wählen Sie die Grundpython mit pyenv und Es ist gut, mit venv eine Umgebung zu schaffen und pip zu verwenden. Klicken Sie hier für Details: [Permanente Aufbewahrungsversion] Setzen Sie pyenv + venv in ubuntu [Zögern Sie nicht mehr]
vscode
vscode verfügt über eine ssh-Funktion, die die Einstellungen des öffentlichen Schlüssels automatisch liest Es fühlt sich gut an, mit Dateien auf dem Remote-Server herumzuspielen, während SSH mit dem privaten Schlüssel ausgeführt wird. Auf der anderen Seite versuchen, das Paket um venv in einem Rätsel zu lesen, Der Eindruck ist, dass es nicht sehr gut für die Codierung geeignet ist. (Wenn es beim Codieren mit venv + vscode einen Codekandidaten oder ähnliches gibt, hätte ich gerne Informationen!)
jupyter_notebook
Jupyter_notebook ist eine IDE, die in einem Webbrowser gestartet wird. Grundsätzlich starten Sie es auf dem Remote-Server, Das Schreiben eines Notizbuchs ist praktisch, wenn die Remote-Saba nur die Berechnung durchführen soll.
Google Colaboratory
Die Umgebung ist eine IDE, die Google für Sie vorbereitet. Die Funktion besteht darin, dass Sie beispielsweise keine Umgebung erstellen müssen. Sie können Python mithilfe von Google-Ressourcen codieren. Zum Glück werden auch GPU- und TPU-Ressourcen verwendet. Die Grundlagen sind die gleichen wie beim Jupyter-Notebook, die Ressourcen werden jedoch von Google verwaltet.
tqdm
Es wird eine Fortschrittsverwaltungsleiste angezeigt. Wie weit geht Deep Learning und andere schwere Prozesse? Der gute Punkt ist, dass Sie es sofort erfassen können. Data Science verarbeitet grundlegende, verdammt große Dateien Wenn es einen Fortschrittsbalken gibt, dauert es einige Minuten (manchmal 30 Stunden). Spielen Sie also während dieser Zeit mit dem Schalter. Du kannst alles machen. Unverzichtbar für maschinelles Lernen.
Informationen zur Verwendung erhalten Sie vom Beamten. Es hat auch Funktionen wie Multiprozess- und numerische Überwachung.
pandas
Es ist ein Tool, das tsv- und Parkettdateien wie eine Tabelle verarbeitet. Es wird fast unverzichtbar für Data Science sein. Ich mag es nicht, wenn ich kaggle.
matplotlib
Sie können das Diagramm anzeigen.
Wenn Sie Kaggle machen, werden Sie im Grunde darauf stoßen, auch wenn Sie es nicht mögen.
Andere Mittel umfassen "Seaborn", "Plotly".
Pickle
Speichern Sie ein beliebiges Python-Objekt.
Sie möchten den Status unterwegs speichern. Möchten Sie ein mit Keras erstelltes Modell oder ein über einen längeren Zeitraum erstelltes XGBoost-Modell speichern? In einem solchen Fall spart Gurke das Ganze. Die als Ganzes gespeicherte Gurke speichert also auch alle ihre Funktionen Es funktioniert auch dann, wenn Sie es entpacken und sofort zur Vorhersage verwenden möchten.
regex
Es ist ein regulärer Ausdruck. Wenn Sie eine Telefonnummer in einer großen Anzahl von Sätzen suchen und erhalten möchten, verwenden Sie dieses Yoshi Im Falle einer Telefonnummer
\d{3,4}[-]?\d{3,4}[-]?\d{4}
Du kannst es haben. (Ich weiß nicht was es ist, aber es ist ein mysteriöses Dokument)
Docker
Es ist keine sogenannte virtuelle Maschine, sondern durch die Trennung von Middleware wie MySQL Docker kann unabhängig gemacht werden, damit die Umwelt nicht verschmutzt wird. Wenn Sie keine Docker-Kenntnisse haben, können Sie MySQL auf dem Hauptgerät installieren ... Es treten störende Dinge wie ** ah fehlgeschlagen ** auf.
Docker unterteilt Dienste wie MySQL und Nginx und schiebt sie in Einheiten, die als Container bezeichnet werden. Sie können so viele Behälter wegwerfen, wie Sie möchten, und so viele produzieren, wie Sie möchten. Der Aufbau der Umwelt ist sehr einfach.
Wenn Sie mit Docker nach Details suchen, wird eine sehr große Menge an Informationen ausgegeben Ich denke, es wäre gut, sich darauf zu beziehen.
Nur die Berechnung erfolgt, indem ein riesiger Desktop-PC mit einer starken GPU berechnet wird Nur Codierung und Anweisungen stammen von Ihrem Mac. Wenn Sie es bequem verwenden möchten, mögen Sie Wir empfehlen Portweiterleitung + Jupyter Notebook.
Ich habe bereits einen Artikel über die Portweiterleitung geschrieben, daher werde ich ihn dort vorstellen. Zusammenfassung der Zugriffsmethode auf Jupyter Notebook (Lab) eines Remote-Servers, die jeder Datenwissenschaftler übergeben kann
Antworten
Jeder starke PC ist in Ordnung. Es ist in Ordnung, einen GPU-Computer für Spiele zu kaufen. Es ist normalerweise rentabler oder einfacher, GCP, AWS zu verwenden.
Alles ist in Ordnung, aber das Grundlegende, was Sie tun müssen, ist ** Irgendwie als sshd-Einstellung auf dem GPU-Server Wenn Sie vorwärts portieren und jupyter auf localhost anzeigen, k **
Antworten
Normalerweise erkenne ich es an der Mac-Adresse ** Geben Sie für diese Mac-Adresse unbedingt 172.168.1.22 per DHCP an ** Wenn Sie einstellen Stellen Sie danach SSH ein, senden Sie den öffentlichen Schlüssel und SSH an 172.168.1.22.
Antworten
Holen Sie sich zuerst Sicherheitswissen, indem Sie dann in sshd_config googeln Auf der Routerseite können Sie festlegen, welcher innere Port an welchen äußeren Port gesendet werden soll. Es hängt von der Umgebung und dem Anbieter ab, aber da sich die grundlegende externe IP ändert, Wenn Sie eine Technologie namens ** DDNS ** verwenden, können Sie von außen darauf zugreifen, indem Sie auf eine feste Domäne zugreifen.
Basic Colab ist gut zu bedienen. Es ist kostenlos Wenn Sie es jedoch zu oft verwenden, wird es abgeschnitten oder ist sehr langsam. Verwenden wir zu diesem Zeitpunkt GCP. Es kostet nicht viel, also ist es okay ~~~~~
Da pyenv ohne sudo-Rechte installiert werden kann, ist die Berechtigungsverwaltung einfach. Ich denke, es ist passend zur Version, also sind die Grundlagen in Ordnung (Da der Build zum Zeitpunkt der Installation ausgeführt wird, ist dies ohne ihn nicht möglich.) Es ist einfach und bequem, Sudo-Rechte zu verwalten.
Dieser Artikel Wussten Sie, dass Colabratory auf GitHub übertragen werden kann und Sie den Unterschied nur auf dem Bildschirm sehen können? Sie können es mit tun.
KI-Plattform für GCP, SageMaker für AWS!
Das hängt aber ab Im Fall von Forschung gibt es ein Originalpapier, das besagt, dass es so ist, als würde man mit einem Datensatz um Noten konkurrieren, sodass Sie darauf verweisen können. Bei unabhängigen Recherchen können Sie herausfinden, wie das geht, indem Sie nach ** Crawlen / Scraping ** suchen. Wenn Sie wirklich ein neues Dataset erstellen möchten, verfügt Cloud auch über eine Anmerkungsfunktion. Warum benutzt du es nicht?
Was soll ich damit machen? Ich werde solche Fragen in Fall hier so weit wie möglich beantworten. Wenn Sie Fragen haben, zögern Sie bitte nicht zu fragen. Vielen Dank, dass Sie lange bei uns geblieben sind.
Recommended Posts