Ich habe Python> autopep8 ausprobiert

Betriebsumgebung


GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 14.04 LTS desktop amd64
TensorFlow v0.11
cuDNN v5.1 for Linux
CUDA v8.0
Python 2.7.6
IPython 5.1.0 -- An enhanced Interactive Python.
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4

Verwandte http://qiita.com/7of9/items/872d80d2a1cc36b5a053

Ich habe versucht, autopep8 von @ shiracamus Kommentar zu lehren.

Installation

$sudo apt-get install python-autopep8

Code vorverarbeiten

TensorFlow-Code wird ausgeführt

learn_in100out100.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
import tensorflow as tf
import tensorflow.contrib.slim as slim
import numpy as np

'''
v0.1 Feb. 06, 2017
    - read [test_in.csv],[test_out.csv]
'''

'''
codingrule:PEP8
'''

filename_inp = tf.train.string_input_producer(["test_in.csv"])
filename_out = tf.train.string_input_producer(["test_out.csv"])
NUM_INP_NODE = 100
NUM_OUT_NODE = 100

# parse csv
# a. input node
reader = tf.TextLineReader()
key, value = reader.read(filename_inp)
deflist = [[0.] for idx in range(NUM_INP_NODE)]
input1 = tf.decode_csv(value, record_defaults=deflist)
# b. output node
key, value = reader.read(filename_out)
deflist = [[0.] for idx in range(NUM_OUT_NODE)]
output1 = tf.decode_csv(value, record_defaults=deflist)
# c. pack
inputs = tf.pack([input1])
outputs = tf.pack([output1])

batch_size = 1
inputs_batch, output_batch = tf.train.shuffle_batch([inputs, outputs], batch_size, capacity=1, min_after_dequeue=batch_size)

input_ph = tf.placeholder("float", [None, 1])
output_ph = tf.placeholder("float", [None, 1])

# network
hiddens = slim.stack(input_ph, slim.fully_connected, [7,7,7],
    activation_fn=tf.nn.sigmoid, scope="hidden")
prediction = slim.fully_connected(hiddens, 1, activation_fn=None, scope="output")
loss = tf.contrib.losses.mean_squared_error(prediction, output_ph)

train_op = slim.learning.create_train_op(loss, tf.train.AdamOptimizer(0.001))

init_op = tf.initialize_all_variables()

with tf.Session() as sess:
    coord = tf.train.Coordinator()
    threads = tf.train.start_queue_runners(sess=sess, coord=coord)

    try:
        sess.run(init_op)
        for idx in range(10):
            inpbt, outbt = sess.run([inputs_batch, output_batch])
            _, t_loss = sess.run([train_op, loss], feed_dict={input_ph:inpbt, output_ph:outbt})

            if (idx+1) % 100 == 0:
            	print("%d,%f" % (idx+1, t_loss))
    finally:
        coord.request_stop()

wird bearbeitet

Da das Verarbeitungsergebnis standardmäßig ausgegeben wird, wurde es unter einem geeigneten Dateinamen gespeichert.

$autopep8 learn_in100out100.py > res.py

Vergleich

$ diff learn_in100out100.py res.py 
38c38,39
< inputs_batch, output_batch = tf.train.shuffle_batch([inputs, outputs], batch_size, capacity=1, min_after_dequeue=batch_size)
---
> inputs_batch, output_batch = tf.train.shuffle_batch(
>     [inputs, outputs], batch_size, capacity=1, min_after_dequeue=batch_size)
44,46c45,48
< hiddens = slim.stack(input_ph, slim.fully_connected, [7,7,7],
<     activation_fn=tf.nn.sigmoid, scope="hidden")
< prediction = slim.fully_connected(hiddens, 1, activation_fn=None, scope="output")
---
> hiddens = slim.stack(input_ph, slim.fully_connected, [7, 7, 7],
>                      activation_fn=tf.nn.sigmoid, scope="hidden")
> prediction = slim.fully_connected(
>     hiddens, 1, activation_fn=None, scope="output")
61c63,64
<             _, t_loss = sess.run([train_op, loss], feed_dict={input_ph:inpbt, output_ph:outbt})
---
>             _, t_loss = sess.run(
>                 [train_op, loss], feed_dict={input_ph: inpbt, output_ph: outbt})
63,64c66,67
<             if (idx+1) % 100 == 0:
<             	print("%d,%f" % (idx+1, t_loss))
---
>             if (idx + 1) % 100 == 0:
>                 print("%d,%f" % (idx + 1, t_loss))
67d69
< 

Wenn das Argument eine Liste ist, ist die Regel der Anpassung an die Position ( ausgeschlossen? (Der Teil von tf.train.shuffle_batch () und _, t_loss = sess.run ())

Pep8 vor und nach der Verarbeitung

$ pep8 learn_in100out100.py 
learn_in100out100.py:38:80: E501 line too long (124 > 79 characters)
learn_in100out100.py:44:56: E231 missing whitespace after ','
learn_in100out100.py:44:58: E231 missing whitespace after ','
learn_in100out100.py:45:5: E128 continuation line under-indented for visual indent
learn_in100out100.py:46:80: E501 line too long (81 > 79 characters)
learn_in100out100.py:61:71: E231 missing whitespace after ':'
learn_in100out100.py:61:80: E501 line too long (95 > 79 characters)
learn_in100out100.py:61:88: E231 missing whitespace after ':'
learn_in100out100.py:64:13: E101 indentation contains mixed spaces and tabs
learn_in100out100.py:64:13: W191 indentation contains tabs
learn_in100out100.py:67:1: W391 blank line at end of file
$ pep8 res.py 
res.py:64:80: E501 line too long (80 > 79 characters)

Nur einer bleibt unten.

            _, t_loss = sess.run(
                [train_op, loss], feed_dict={input_ph: inpbt, output_ph: outbt})

Sie können Ihre Codierung verbessern, indem Sie sich auf das von autopep8 verarbeitete Teil beziehen.

Wenn Sie es über autopep8 weitergeben, ist es vorerst nicht gut, es als OK zu verwenden.

Recommended Posts

Ich habe Python> autopep8 ausprobiert
Ich habe Python> Decorator ausprobiert
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, mit Python zu kratzen
Ich habe die C-Erweiterung von Python ausprobiert
Ich habe gRPC mit Python ausprobiert
Ich habe versucht, mit Python zu kratzen
Ich habe versucht, Python zu berühren (Installation)
Ich habe versucht, WebScraping mit Python.
Ich habe versucht, Thonny (Python / IDE) zu verwenden.
Ich habe es mit Grumpy versucht (Python ausführen).
Ich habe versucht, Prolog mit Python 3.8.2 auszuführen.
Ich habe Line Benachrichtigung in Python versucht
Ich habe die SMTP-Kommunikation mit Python versucht
Ich habe PyQ ausprobiert
Ich habe Python gestartet
Ich habe AutoKeras ausprobiert
Ich habe es mit Papiermühle versucht
Ich habe versucht, Django-Slack
Ich habe es mit Django versucht
Ich habe es mit Spleeter versucht
Ich habe es mit cgo versucht
Ich habe versucht, die Behandlung von Python-Ausnahmen zusammenzufassen
Ich habe versucht, PLSA in Python zu implementieren
Ich habe versucht, Permutation in Python zu implementieren
Ich habe versucht, PLSA in Python 2 zu implementieren
Python3-Standardeingabe habe ich versucht zusammenzufassen
Ich habe versucht, die Bayes'sche Optimierung von Python zu verwenden
Ich habe versucht, mit Python + opencv nicht realistisch zu rendern
Ich habe versucht, die UnityCloudBuild-API von Python zu verwenden
Ich habe versucht, ADALINE in Python zu implementieren
Ich habe eine funktionale Sprache mit Python ausprobiert
Ich habe versucht, mit Python ② (Fibonacci-Zahlenfolge) aufzuklären.
Ich habe versucht, PPO in Python zu implementieren
Python: Ich habe das Problem des Handlungsreisenden ausprobiert
Wrangle x Python Buch Ich habe es versucht [1]
Mayungos Python Learning Episode 8: Ich habe versucht, Eingaben zu machen
[Python] Ich habe versucht, TF-IDF stetig zu berechnen
Ich habe versucht, Yahoo Wetter zu kratzen (Python Edition)
Ich habe versucht, Python zu berühren (grundlegende Syntax)
Ich habe das Python Tornado Testing Framework ausprobiert
# Ich habe so etwas wie Vlookup mit Python # 2 ausprobiert
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"
Ich habe versucht, Argparse zu verwenden
Ich habe Hunderte Millionen SQLite mit Python ausprobiert
Ich habe versucht, anytree zu verwenden
vprof - Ich habe versucht, den Profiler für Python zu verwenden
Ich habe versucht, Web-Scraping mit Python und Selen
Ich habe versucht, das Bild mit Python + OpenCV zu "differenzieren"
Ich habe versucht, aiomysql zu verwenden
Ich habe versucht, Objekte mit Python und OpenCV zu erkennen
Ich habe versucht, mit Python ein Tippspiel zu spielen
Ich habe versucht, Summpy zu verwenden
Ich habe versucht, "Birthday Paradox" mit Python zu simulieren
Ich habe die Methode der kleinsten Quadrate in Python ausprobiert