PyCharmでPyQt、TensorFlow、その他の環境を構成します

このブログは、ブログ「PyQtを使用してROSでGUIプログラムを作成する」の拡張版でもあります

 

目次

1.ソフトウェアのインストール

 2、環境構成

3、他のライブラリをインストールします

 第四に、PyCharmでのPyQtの構築


 

1.ソフトウェアのインストール

PycharmはPythonに適したIDEです。PyCharmのダウンロードはhttps://www.jetbrains.com/pycharm/downloadで、コミュニティバージョンを選択でき、無料で使用でき、インストールプロセスは非常に簡単です。

Pythonのインストールは、公式Webサイトhttps://www.python.org/downloads/から直接ダウンロードできます最新バージョンは3.7シリーズです。実行可能プログラムをダウンロードして、デフォルトのオプションに従って直接インストールすることをお勧めします。Pipをチェックする必要があります。Pythonをシステム環境変数に配置することをお勧めします。そのため、cmdを開いてpythonと入力し、Enterキーを押して、Pythonが正常にインストールされているかどうかと対応するバージョンを確認します。

 

 2、環境構成

インストールされているpycharmをダブルクリックすると、初めて開いたときにPythonインタープリターを選択するように求められます。通常、デフォルトでは仮想環境がロードされます。次のように、システムにロードしたばかりのインタープリターを直接選択します。

新しいプロジェクトを作成して、math、sys、socketなどのPythonライブラリをインポートできるようにします。

 

3、他のライブラリをインストールします

Pythonには主に2つのパッケージマネージャーシステムがあります。1つはconda(これにはanacondaをインストールする必要があります)で、もう1つはpipです。Pythonのパッケージマネージャーシステムは非常に強力で使いやすいので、置くことができません詳細については、https://pypi.org/project/pip/を参照してください

pipはスクリプト言語であり、その実行ディレクトリは、インストールされているPython環境のScriptsフォルダーの下にあります。

pipの使用法は次のとおりで、通常はinstallコマンドを使用します。

たとえば、PyQt5(これはQtライブラリに基づくPythonパッケージであり、Pythonを使用していくつかのGUIプログラムを作成するのに適しています)をインストールするには、cmdに直接入力します。

pip install PyQt5

次に、Enterキーを押してインストールを開始します詳細については、https://pypi.org/project/PyQt5を参照してください他のライブラリに依存し、最初にインストールされるため、最初のインストールは成功しない場合があります。失敗した場合は、再度命令を実行してください。

同様に、TensorFlowも同じ方法でインストールされます。

pip install tensorflow

詳細については、https://pypi.org/project/tensorflowを参照してくださいnumpyなどのサードパーティライブラリに依存しているため、成功するには数回インストールする必要があります。

TensorFlowが正常にインストールされているかどうかを確認するには、PythonIDLEで簡単なプログラムを作成して次のことを確認します。

import tensorflow as tf
import numpy as np
# 引入图表
import matplotlib.pyplot as plt
 
# 没有激励就是线性
def add_layer(inputs,in_size,out_size,activation_function=None):
	Weights = tf.Variable(tf.random_normal([in_size,out_size]))# 随机生成一个矩阵,有in_size行数和out_size列数
	biases = tf.Variable(tf.zeros([1,out_size])+0.1)# 这个是个一维数组,行数只有1,列数为out_size,这里+0.1表示他每个值都是0.1
	Wx_plus_b = tf.matmul(inputs,Weights)+biases# 矩阵相乘再加biases
	if activation_function  is None:
		outputs = Wx_plus_b# 如果没有激励,则直接就是这个线性函数
	else:
		outputs = activation_function(Wx_plus_b)# 如果有激励,则把线性函数传进激励函数(进行过滤或缩放等操作)
	return outputs
 
# 这个x_data是这样的:产生300个[x],其值从-1开始到1不等距分布
# [-0.001234234]
# [-0.002453244]
# .
# .
# .
# [0.932423425]
# [0.993242424]
x_data = np.linspace(-1,1,300)[:,np.newaxis]
 
# 噪点,结构与x_data类似有负有正
# 以0为中点,方差为0.05波动
# 这个数与0之间的差值的平方值,最大为0.05,即这个数的平方不能大于0.05
 
noise = np.random.normal(0,0.05,x_data.shape)
 
# 令y_data等于x_data的二次方,再减去0.5,然后加上一个随机噪声,这样x跟y就不是完全线性相关的
 
y_data = np.square(x_data) - 0.5 + noise
 
xs = tf.placeholder(tf.float32,[None,1])
ys = tf.placeholder(tf.float32,[None,1])
 
# 定义隐藏层。输入神经元1个,隐藏层神经元10个,激励函数:非线性函数
#(inputs,in_size,out_size,activation_function=None)
#(输入数据,输入参数个数,输出参数根数,激励函数)
l1 = add_layer(xs,1,10,activation_function = tf.nn.relu)
 
# 定义输出层。l1,神经元10个,输出1
# 输出层,就是预测值
predition = add_layer(l1,10,1,activation_function = None)
 
# tf.square(ys - predition) (对每个例子)实际值减预测值的平方
# 对刚才的平方,所有例子求和
# 对刚才求的和求一个平均值
 
loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys - predition),
	reduction_indices = [1]))
# 梯度下降法优化器
# 参数是学习效率
# 优化器的目标是最小化误差
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)
 
init = tf.initialize_all_variables()
 
sess = tf.Session()
sess.run(init)
 
# 在此显示图形
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.scatter(x_data,y_data)# x和对应的y
plt.ion()#有这个语句就不阻塞会继续往下走
plt.show()
 
for i in range(1000):
	sess.run(train_step,feed_dict = {xs:x_data,ys:y_data})
	if i% 50:
		#print(sess.run(loss,feed_dict = {xs:x_data,ys:y_data}))
		try:
			ax.lines.remove(lines[0])
		except Exception:
			pass
		prediction_value = sess.run(predition,feed_dict={xs:x_data})
		lines  = ax.plot(x_data,prediction_value,'r-',lw=5)#红线是预测的线
		plt.pause(0.1)#暂停0.1秒
# 如果打印的loss越来越小,说明是收敛的,训练有效
# 检验发现,10000次训练不会比1000此训练loss更小,说明不收敛(不是无限收敛)

次に実行すると、次のインターフェイスが表示されます。

 

したがって、いくつかの機械学習アルゴリズムを研究できます。

pipとともにインストールされるライブラリは、Python37 \ Lib \ site-packagesにあります。

 

 第四に、PyCharmでのPyQtの構築

UIインターフェイスの設計を行うには、pyqt5-toolsツールもインストールする必要があります。これは実際にはQt Designerなどの補助ツールであり、Qtのui、qrc、その他のファイルをPythonの説明に変換します。

pycharmを開き、設定/ツールで外部ツールを追加します。主なものは3つあります。QtDesignerはインターフェイスの設計に使用され、pyuicは.uiファイルをPythonの説明に変換するために使用され、pyrccは.qrcファイルをPythonの説明に変換するために使用されます。Qtに精通している友人はQtDesignerをよく理解している必要がありますが、pyuicとpyrccはPython37 \ Scriptsフォルダーにあり、スクリプトによっても操作されます。

pyrccの使用法は次のとおりです。

pyuicの使用法は次のとおりです。

 通常、生成されたコードをファイルに出力するには、-oコマンドで十分です。

したがって、pycharmの設定は次のとおりです。

  • QtDesigner

  •  pyuic、引数に$ FileDir $ \ $ FileName $ -o $ FileDir $ \ $ FileNameWithoutExtension $ .pyと入力し、作業ディレクトリに$ FileDir $と入力すると、その横の挿入マクロにいくつかのキーワードがあります。

  •  pyrccの場合、引数に$ FileDir $ \ $ FileName $ -o $ FileDir $ \ $ FileNameWithoutExtension $ _rc.pyと入力し、作業ディレクトリに$ FileDir $を入力します。

 入力して保存したら、PyQtプログラムの作成を開始できます。 

この時点で、PyQtライブラリをテストするための新しいプロジェクトを作成します。QtDesingerを使用して簡単なインターフェイスを作成し、右クリックして外部ツールでpyuicを選択すると、この時点で同じ名前の.pyファイルが生成されます。新しいqrcファイルを作成し、画像やその他の情報を入力してから、右クリックして外部ツールでpyrccを選択すると、_rc.pyファイルを含むファイルが生成されます。プロジェクトディレクトリを以下に示します。

 

main.pyのコードは次のとおりです。

from PyQt5 import QtWidgets
import sys
from test import *
from rqc_rc import *
import numpy as np
from matplotlib import pyplot as plt

i = 1

x = np.arange(-5, 5, 0.1)
y = x*x+5
plt.title("python plot demo")
plt.xlabel("x axis")
plt.ylabel("y axis")
plt.plot(x, y, '-*')
plt.show()


class TestUi(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(TestUi, self).__init__(parent)
        self.ui = Ui_Form()
        self.ui.setupUi(self)
        self.ui.pushButton.pressed.connect(self.slot_btn_1)

    def slot_btn_1(self):
        global i
        print(i)
        self.ui.lineEdit.setText(str(i))
        i = i + 1


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    widget = TestUi()
    widget.show()
    sys.exit(app.exec())

その中でも、matplotlibはmatlabと非常によく似ており、純粋にテスト用です。無視してかまいません。

最終プログラムの実行効果は次のとおりです。

 

楽しい!

 

おすすめ

転載: blog.csdn.net/u014610460/article/details/101108549