Le titre est "[Avant l'introduction à la programmation C](https://www.amazon.co.jp/C%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-% E6% 9D% 91% E5% B1% B1-% E5% 85% CA% E4% BF% 9D / dp / 4839920648 / ref = sr_1_2? adgrpid = 51730019485 & gclid = EAIaIQobChMI0Puty8bE5gIVQ7aWCh2ACQjIEAAYASAAEgIQqPD_BwE & hvadid = 338517772944 & hvdev = c & hvlocphy = 1028852 & hvnetw = g & hvpos = 1T1 & hvqmt = e & hvrand = 1357865022882897559 & hvtargid = kwd-333217628374 & hydadcr = 27264_11561112 & jp -ad-ap = 0 & mots-clés =% 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) Auteur: Emprunté à Murayama Public Insurance. En d'autres termes, je n'apprends pas l'apprentissage automatique, mais de nombreuses compétences sont requises pour l'apprentissage automatique. Je vais parler.
Tout d'abord, je voudrais me présenter.
Les écoles de premier cycle et des cycles supérieurs se trouvaient dans le laboratoire d'intelligence artificielle. Au début, je faisais beaucoup de recherches basées sur la machine Boltzmann, etc. Pour une raison quelconque, lorsque j'étais étudiant diplômé, j'ai été embauché par une entreprise comme travail de recherche à temps partiel. Je suis diplômé de la thèse de maîtrise après y avoir écrit les résultats de la recherche.
J'étais une personne qui pouvait écrire un programme relativement, ** Je ne peux pas rechercher des mots inconnus en premier lieu **, donc Je veux apprendre la technologie tout le temps ...! Je ne pouvais pas chercher même si je pensais J'ai passé des jours à souffrir.
Après être entré dans le laboratoire, j'ai pu connaître l'existence de Qiita et connaître Python. J'ai pu apprendre le machine learning.
Tout cela grâce à Qiita, car je ne pouvais même pas chercher parce que je ne comprenais pas les mots J'ai progressivement appris le mot et, par conséquent, j'ai pu apprendre le machine learning.
Fondamentalement, c'est la fin de "l'apprentissage automatique, comment vous avez appris". Le reste est comme un bonus, mais j'espère que vous pourrez le lire. (Comme de la gomme avec des jouets)
Cette fois, avec merci à Qiita
Je vais donner une brève explication en énumérant les termes tels que. S'il te plaît viens dehors avec moi.
L'apprentissage automatique et Linux sont indissociables l'un de l'autre. Mac n'est pas assez fort, Windows est gênant pour mettre Python
Par conséquent, dans l'apprentissage automatique, vous serez obligé d'utiliser Linux au milieu. Nous vous expliquerons comment le faire, les commandes utiles et les connaissances nécessaires.
Windows 10 a récemment une fonctionnalité appelée * Sous-système Windows pour Linux *. En utilisant cela, vous pouvez utiliser un pseudo environnement Linux sur Windows.
Vous pouvez découvrir comment l'installer par google. Outil officiel de Microsoft.
SSH
Il signifie Secured Shell et SSH. Considérez-le comme une fonction de connexion à un serveur distant. En d'autres termes, il vous permet d'accéder à des serveurs distants.
Ce qui me rend heureux lorsque j'utilise SSH, c'est en utilisant l'interface Mac. Le calcul lui-même peut être laissé à Linux. De plus, peu importe si votre interface est Mac ou Windows. Vous pouvez utiliser l'un ou l'autre.
Vous voudrez peut-être SSH tout en l'ouvrant vers l'extérieur sur votre serveur domestique ou serveur de laboratoire. Dans ce cas, si vous observez les points suivants dans les paramètres de sshd.conf, vous l'aurez fondamentalement.
--Réglez PermitRootLogin sur no. --Définissez PasswordAuthentication sur no.
Si vous utilisez SSH pour l'authentification par clé publique, vous pouvez entrer en toute sécurité la télécommande sans mot de passe. Utilisons l'authentification par clé publique. Si vous l'exposez à Internet, vous n'avez pas d'autre choix.
Le mécanisme etc. ne sera pas expliqué en détail ici. Tout simplement
ssh-keygen
.
--Définissez la clé publique sur authorized_keys et définissez divers sshd_config
--Réglez sur ~ / .ssh / config
du côté accès comme ʻIdentity File ~ / .ssh / id_rsa`Ensuite, vous pouvez vous connecter en toute sécurité. Veuillez gg pour plus de détails.
tmux
Lorsque vous effectuez des calculs lors de la connexion à distance avec SSH, Si le réseau est déconnecté pendant une longue période de calcul, ** le résultat du calcul reviendra à rien. ** **
Vous voulez conserver l'état même si SSH est coupé, non? tmux peut réellement le faire.
tmux a le concept de session. Cela permet au pseudo terminal de rester indéfiniment dans le processus même si le SSH expire.
Vous n'avez probablement pas besoin d'installer tmux car il est probablement inclus dans ubuntu 18.04 LTS.
Comment démarrer une session tmux
python
tmux new -s session_name
est. N'hésitez pas à nommer session_name.
tmux opère n'importe quoi en appuyant d'abord sur la touche de préfixe de base. La touche de préfixe est «ctrl + b» par défaut, mais si vous la définissez sur «ctrl + a» Je le recommande car il fait beaucoup de progrès.
Si vous voulez perdre la session elle-même, utilisez logout
.
Il s'agit d'une opération appelée détacher. Appuyez sur prefix, d
dans cet ordre
Tapez tmux a
dans le terminal
tmux peut également diviser l'écran.
La saisie de prefix,%
divisera l'écran verticalement.
Si vous entrez prefix,"
, l'écran se fissurera horizontalement.
En fait, vous pouvez également afficher l'horloge.
Vous pouvez le faire avec tmux clock-mode
.
Vous pouvez également l'obtenir avec prefix,?
,
https://qiita.com/nmrmsys/items/03f97f5eabec18a3a18b
J'espère que vous pourrez vous référer à cet article.
~/.tmux.conf
Vous pouvez également définir divers paramètres pour tmux. Il existe différents paramètres, mais je me suis référé aux deux articles suivants.
Apprendre du maître. Paramètres de base de tmux.conf Afficher si la touche Préfixe est enfoncée dans tmux
Les paramètres que j'utilise toujours sont les suivants.
#touche de préfixe C-Changer en<img width="727" alt="Capture d'écran 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-Annuler la liaison b
unbind C-b
#Recharger le fichier de configuration
bind r source-file ~/.tmux.conf \; display "Reloaded!"
# C-a*C au programme dans tmux en 2-envoyer un
bind C-a send-prefix
# |Divisez le volet verticalement avec
bind | split-window -h
# -Divisez le volet horizontalement avec
bind - split-window -v
#Utilisez un terminal 256 couleurs
set -g default-terminal "screen-256color"
#Permet de vérifier si la touche de préfixe est enfoncée
set-option -g status-left '#[fg=cyan,bg=#303030]#{?client_prefix,#[reverse],} #H[#S] #[default]'
En gros, cela suffit.
htop
htop est un outil qui vous permet de voir les ressources.
Vous pouvez voir combien de ressources CPU sont réellement chargées avec cela.
nvtop
nvtop est la version GPU de htop.
Est-ce que c'est comme s'il y avait htop et nvtop? Vous pouvez également voir si vous utilisez un GPU.
Dans le cas d'ubuntu, dans le cas de 19.04, vous pouvez le saisir avec ʻapt`, Fondamentalement, vous devez créer la source.
vi/vim
Il y a de fortes chances que vous manipuliez des fichiers sous Linux, comme sur SSH. Vi et Vim sont utilisés dans un tel cas. La différence entre vi et vim est vi + diverses fonctions = vim. C'est beaucoup de problèmes si vous n'utilisez que vi.
Vous pouvez l'ouvrir avec les commandes vi
et vim
.
Fondamentalement, ce n'est pas grave si vous vous souvenez de ce qui suit.
Fondamentalement, le déplacement du curseur, l'annulation et la recherche sont également effectués ici. Voici une liste de fonctionnalités qu'il est utile de connaître.
:q Terminer
:q!résiliation forcée
:w Écraser
:100 Passer à la ligne 100
/mot de recherche mot(+n pour passer au mot correspondant suivant)
u Undo(ctrl dans windows+comportement de type z)
dd Supprimer la ligne actuelle(ctrl dans windows+comportement de type x)
yy Copier la ligne actuelle(ctrl+comportement de type c)
p coller(ctrl+comportement de type v)
Correspond à hjkl ← ↓ ↑ →(Sur un mac, si vous entrez zh en japonais, vous obtiendrez ←.)
Appuyez sur la touche «i» ou «O» pour entrer en mode insertion. En mode insertion, vous pouvez saisir des caractères. Appuyez sur «ESC» pour revenir au mode normal. (La raison pour laquelle la touche ESC a été restaurée sur mac est due à Vimmer ...?)
Pour plus de détails, il existe autant de méthodes d'opération que possible si vous google. Vérifie s'il te plaît
find
Il recherche littéralement le fichier.
find [start_dir]
En termes d'utilisation
find ~/ |grep Fichier que vous souhaitez identifier
Vous pouvez rechercher l'emplacement du fichier.
tree
Affiche le fichier au format arborescent. J'utilise toujours ceci lorsque je veux comprendre toute la structure. Le problème est que beaucoup de journaux circulent (
wc
Vérifiez le nombre de lignes de fichier Utile lorsque vous voulez savoir combien de lignes il y a dans un fichier tsv Ou laissez-moi trouver
df/du
Il mesurera la taille du fichier. df est la capacité de la taille totale du fichier, du vous montrera la taille de chaque taille de fichier individuelle.
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
L'option -h
affichera l'unité pour la capacité.
Dans la section Système de fichiers se trouve dev (périphérique) et son nom spécifique.
/ dev / sdb3 est le matériel concret tel que le SSD.
Il peut être essentiellement nommé sd [x] [n]. Veuillez gg pour plus de détails.
D'un autre côté, si vous voulez voir la taille individuelle du fichier, la commande du
est efficace.
Par exemple, si vous souhaitez voir la liste des capacités dans le dossier actuel
du -hs ~/*
Ensuite, il verra toute la capacité de fichier actuellement chargée individuellement. Il vous montrera lequel est le plus lourd.
grep
Utilisez cette option lorsque vous souhaitez extraire uniquement la notation appropriée d'un grand nombre de journaux.
find ~/ | grep filename
Je vais envoyer le journal avec le traitement du tube qui a dit Seule la partie correspondant au nom de fichier peut être extraite Il prend également en charge l'expression régulière décrite plus tard.
cat
Vous pouvez sortir le fichier directement. Combinez les tuyaux
cat /var/log/auth.log | grep sudo
Vous pouvez effectuer une recherche de fichiers.
less/head/tail
Quand un putain de gros tsv stupide appelé 120 Go a été envoyé
Il faut beaucoup de temps pour mourir si vous faites vim logfile.tsv
.
(Envoyons tsv à ce niveau par parquet en premier lieu!)
Dans un tel cas, ne lisez qu'une partie de la commande less, Il sera affiché à l'écran. head affiche les premières lignes. tail affichera les dernières lignes.
jq
Cela rend le fichier json joli. Pour plus de détails, reportez-vous à Introduction à l'utilisation quotidienne de la commande jq.
sed
Il remplacera la chaîne.
s / a / b / g
→ Convertir a en b
Même dans la zone ingénieur, / de s / est souvent ignoré par / g
ou mou.
C'est une langue commune.
Je connais Python, mais que diriez-vous de l'installer? Est une personne J'en sais beaucoup, mais je me demande comment gérer la version sous Linux ... Recommandé pour les gens comme.
pyenv
Il installera la version Python pour chaque utilisateur. Cliquez ici pour plus de détails: [Version de conservation permanente] Mettez pyenv + venv dans ubuntu [N'hésitez plus]
Après avoir installé pyenv,
Entrez la version python souhaitée avec pyenv install python-version
.
Fondamentalement, vous devez apporter le plus simple comme l'anaconda.
Comme pyenv install 3.6.9
Ensuite, python sera placé dans votre dossier personnel, il ne polluera donc pas l'environnement des autres utilisateurs.
venv
venv est un outil de gestion de paquets python. Sélectionnez le python de base avec pyenv et Il est bon de créer un environnement avec venv et d'utiliser pip. Cliquez ici pour plus de détails: [Version de conservation permanente] Mettez pyenv + venv dans ubuntu [N'hésitez plus]
vscode
vscode a une fonction ssh qui lit automatiquement les paramètres de la clé publique Vous pouvez manipuler des fichiers sur le serveur distant tout en SSH avec votre clé privée. D'autre part, en essayant de lire le paquet par venv dans un mystère, L'impression est qu'elle n'est pas très adaptée au codage. (Si vous pouvez obtenir un candidat de code en codant avec venv + vscode, j'aimerais des informations!)
jupyter_notebook
Jupyter_notebook est un IDE qui démarre sur un navigateur Web. En gros, démarrez-le sur le serveur distant, Écrire un cahier est pratique lorsque vous voulez que la télécommande Saba ne fasse que le calcul.
Google Colaboratory
L'environnement est un IDE que Google prépare pour vous. La fonctionnalité est que vous n'avez rien à faire comme la création d'un environnement. Vous pouvez coder Python à l'aide des ressources Google. Heureusement, il utilise également des ressources GPU et TPU. Les bases sont les mêmes que celles du notebook Jupyter, mais les ressources sont gérées par Google.
tqdm
Cela fera apparaître une barre de gestion des progrès. Dans quelle mesure le Deep Learning et d'autres traitements lourds se déroulent-ils? Le bon point est que vous pouvez le saisir immédiatement. La science des données traite de gros fichiers de base, donc S'il y a une barre de progression, cela prendra environ quelques minutes (parfois 30 heures), alors jouez avec le commutateur pendant ce temps. Tu peux faire n'importe quoi. Essentiel pour l'apprentissage automatique.
Veuillez consulter le responsable pour savoir comment l'utiliser. Il dispose également de fonctions telles que la surveillance multiprocessus et numérique.
pandas
C'est un outil qui traite les fichiers tsv et parquet comme une table. Ce sera presque indispensable pour faire de la science des données. Je n'aime pas l'utiliser quand je fais du kaggle.
matplotlib
Vous pouvez afficher le graphique. En gros, si vous faites Kaggle, vous le rencontrerez même si vous ne l'aimez pas. D'autres moyens incluent «seaborn», «complotement».
Pickle
Enregistrez n'importe quel objet python.
Vous voulez sauver l'état en cours de route. Vous souhaitez enregistrer un modèle réalisé avec Keras ou enregistrer un modèle XGBoost réalisé sur une longue période Dans un tel cas, le cornichon enregistre le tout. Pickle enregistré dans son ensemble enregistre également toutes ses fonctions, donc Cela fonctionne même si vous souhaitez le décompresser et l'utiliser immédiatement pour la prédiction.
regex
C'est une expression régulière. Si vous souhaitez rechercher et obtenir un numéro de téléphone dans un grand nombre de phrases, utilisez ce Yoshi Dans le cas d'un numéro de téléphone
\d{3,4}[-]?\d{3,4}[-]?\d{4}
Tu peux l'avoir. (Je ne sais pas ce que c'est, mais c'est un document mystérieux)
Docker
Ce n'est pas une soi-disant machine virtuelle, mais en séparant un middleware tel que MySQL Docker peut être rendu indépendant afin de ne pas polluer l'environnement. Si vous ne connaissez pas Docker, vous pouvez installer MySQL sur l'unité principale ... Des problèmes tels que ** Ah échoué ** se produisent.
Docker divise les services tels que MySQL et nginx et les pousse dans des unités appelées conteneurs. Vous pouvez jeter autant de contenants que vous le souhaitez et en produire autant que vous le souhaitez. Construire l'environnement est très simple.
Pour plus de détails, si vous effectuez une recherche avec Docker, une très grande quantité d'informations sortira, donc Je pense qu'il serait bon de parler de cela.
Seul le calcul est effectué en laissant un énorme PC de bureau avec un GPU puissant calculer Seuls le codage et les instructions proviennent de votre Mac. Si vous souhaitez l'utiliser commodément comme Nous recommandons la redirection de port + le notebook jupyter.
J'ai déjà écrit un article sur la redirection de port, je vais donc le présenter ici. Résumé de la méthode d'accès au Jupyter Notebook (Lab) du serveur distant que tout scientifique des données peut transmettre
répondre
Tout PC puissant est très bien. Il est normal d'acheter une machine GPU pour les jeux, Il est généralement plus rentable ou plus facile d'utiliser GCP, AWS.
Tout va bien, mais la chose fondamentale que vous devez faire est ** En quelque sorte comme paramètre sshd sur le serveur GPU Si vous portez en avant et affichez jupyter sur localhost, k **
répondre
Je le reconnais généralement par adresse mac, donc ** Assurez-vous de spécifier 172.168.1.22 pour cette adresse mac par DHCP ** Si vous définissez Après cela, définissez SSH, envoyez la clé publique et SSH sur 172.168.1.22.
répondre
Tout d'abord, obtenez des informations sur la sécurité en recherchant sur Google sshd_config, puis Du côté du routeur, vous pouvez définir quel port interne doit être envoyé à quel port externe. Cela dépend de l'environnement et du fournisseur, mais comme l'IP externe de base change, Si vous utilisez une technologie appelée ** DDNS **, vous pouvez y accéder de l'extérieur en accédant à un domaine fixe.
Basic Colab est bon à utiliser. C'est gratuit Cependant, si vous l'utilisez trop, il sera coupé ou il sera très lent. À ce moment-là, utilisons GCP. Ça ne coûte pas cher, donc ça va ~~~~~
Étant donné que pyenv peut être installé sans avoir besoin de droits sudo, la gestion des autorisations est facile. Je pense que cela dépend de la version pour apt, donc les bases sont bonnes (Étant donné que la compilation s'exécute au moment de l'installation, il est impossible de le faire sans elle.) Il est facile et pratique de gérer les droits sudo.
Cet article Saviez-vous que Colabratory peut être poussé vers GitHub et voir la différence juste à l'écran? Vous pouvez le faire avec.
Plateforme IA pour GCP, SageMaker pour AWS!
Cela dépend, mais Dans le cas de la recherche, il existe un article original qui dit que c'est comme rivaliser pour les notes avec un ensemble de données, vous pouvez donc vous y référer. Dans le cas d'une recherche indépendante, vous pouvez découvrir comment le faire en recherchant ** crawling / scraping **. Si vous souhaitez vraiment créer un nouvel ensemble de données, Cloud dispose également d'une fonction d'annotation. Pourquoi ne l'utilisez-vous pas?
Que dois-je faire avec ça? Je répondrai autant que possible à des questions comme celle-ci dans Case ici. Si vous avez des questions, n'hésitez pas à les poser. Merci d'être resté longtemps avec nous.
Recommended Posts