PyQt5制作计算反卷积操作之后的大小的工具

版权声明:转载注明出处 https://blog.csdn.net/york1996/article/details/82697494

首先是效果图:

计算

由于是DCGAN生成器模型,需要多次反卷积操作使feature变成一个给定的大小,所以要把最后的大小凑出来,虽然计算公式十分简单:(这里假设feature,kernel,input,output都是方形的,padding也是对称的)

output=stride(input-1)+kernel_size-2*padding

 但是,由于是要凑数的,所以如果要不断的用笔算还是稍微复杂的。那么用程序来简单的计算,改变其中一个值,就能知道最终的输出结果。这样凑数就方便多了。另外如果是命令行形式的输入,也是挺复杂的,用GUI界面实现是个不错的选择,所以这里就采用了PyQt5来实现。以下是所有的代码,保证import到的模块都存在就可以正常运行了:

from PyQt5.QtWidgets import QWidget,QApplication,QPushButton,QLabel,QMainWindow,QTextEdit
from PyQt5.QtGui import QFont
import sys
class mainForm(QMainWindow):

    def __init__(self):
        super(mainForm, self).__init__()
        self.initUI()
        self.show()
    def initUI(self):
        font=QFont()
        font.setPixelSize(20)
        self.setWindowTitle("计算反卷积操作的输出(默认都是方形的)")
        self.setGeometry(0,0,600,160)
        self.label_input_size=QLabel("feature",self)
        self.label_input_size.move(60,80)
        self.label_input_size.setFont(font)
        self.label_input_size.setFixedHeight(35)


        self.label_kernel_size=QLabel("kernel",self)
        self.label_kernel_size.move(160,80)
        self.label_kernel_size.setFont(font)
        self.label_kernel_size.setFixedHeight(35)


        self.label_stride_size=QLabel("stride",self)
        self.label_stride_size.move(260,80)
        self.label_stride_size.setFont(font)
        self.label_stride_size.setFixedHeight(35)


        self.label_padding_size=QLabel("padding",self)
        self.label_padding_size.move(360,80)
        self.label_padding_size.setFont(font)
        self.label_padding_size.setFixedHeight(35)

        self.text_input=QTextEdit(self)
        self.text_input.move(50,50)
        self.text_input.setFixedHeight(35)
        self.text_input.setFont(font)

        self.text_kernel=QTextEdit(self)
        self.text_kernel.move(150,50)
        self.text_kernel.setFont(font)
        self.text_kernel.setFixedHeight(35)

        self.text_stride=QTextEdit(self)
        self.text_stride.move(250,50)
        self.text_stride.setFont(font)
        self.text_stride.setFixedHeight(35)

        self.text_padding=QTextEdit(self)
        self.text_padding.move(350,50)
        self.text_padding.setFixedHeight(35)
        self.text_padding.setFont(font)

        self.button_cal=QPushButton("计算",self)
        self.button_cal.move(450,50)
        self.button_cal.setFont(font)
        self.button_cal.setFixedHeight(35)

        self.button_cal.clicked.connect(self.cal)
    def cal(self):
        i=int(self.text_input.toPlainText())
        k=int(self.text_kernel.toPlainText())
        s=int(self.text_stride.toPlainText())
        p=int(self.text_padding.toPlainText())
        out=s*(i-1)+k-2*p
        self.setWindowTitle(str(out))

app=QApplication(sys.argv)
f=mainForm()
sys.exit(app.exec())

反卷积,工具tool

猜你喜欢

转载自blog.csdn.net/york1996/article/details/82697494