会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132490个问题
Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 29326楼
WEB前端全系列/第二十阶段:Vue2企业级项目(旧)/Ego商城高级Vue实战项目 29327楼

# 画图项目
from tkinter.filedialog import *
from tkinter.colorchooser import *
win_width = 900
win_height = 450
class Application(Frame):
    def __init__(self, master = None, bgcolor = "#000000"):
        super().__init__(master)
        self.master = master
        self.x = 0
        self.y = 0
        self.bgcolor = bgcolor
        self.fgcolor = "#ff0000"
        # 表示最后画的id
        self.lastDraw = 0
        self.startDrawFlag = False
        self.pack()
        self.createWidget()
    def createWidget(self):
        # 创建绘图区
        self.drawpad = Canvas(root, width = win_width, height = win_height*0.9, bg = self.bgcolor)
        self.drawpad.pack()
        # 创建按钮
        btn_start = Button(root, text = "开始", name = "start")
        btn_start.pack(side = "left", padx = "10")
        btn_pen = Button(root, text = "画笔", name = "pen")
        btn_pen.pack(side = "left", padx = "10")
        btn_rect = Button(root, text = "矩形", name = "rect")
        btn_rect.pack(side = "left", padx = "10")
        btn_clear = Button(root, text = "清屏", name = "clear")
        btn_clear.pack(side = "left", padx = "10")
        btn_erasor = Button(root, text = "橡皮擦", name = "erasor")
        btn_erasor.pack(side = "left", padx = "10")
        btn_line = Button(root, text = "直线", name = "line")
        btn_line.pack(side = "left", padx = "10")
        btn_lineArrow = Button(root, text = "箭头直线", name = "lineArrow")
        btn_lineArrow.pack(side = "left", padx = "10")
        btn_color = Button(root, text = "颜色", name = "color")
        btn_color.pack(side = "left", padx = "10")
        # 事件处理
        btn_pen.bind_class("Button", "<1>", self.eventManager)
        self.drawpad.bind("<ButtonRelease-1>", self.stopDraw)
        # 增加快捷键颜色
        root.bind("<KeyPress-r>", self.kuaijiejian)
        root.bind("<KeyPress-g>", self.kuaijiejian)
        root.bind("<KeyPress-y>", self.kuaijiejian)
    def eventManager(self, event):
        name = event.widget.winfo_name()
        print(name)
        if name == "line":
            self.drawpad.bind("<B1-Motion>", self.myline)
        elif name == "lineArrow":
            self.drawpad.bind("<B1-Motion>", self.mylineArrow)
        elif name == "rect":
            self.drawpad.bind("<B1-Motion>", self.myRect)
        elif name == "pen":
            self.drawpad.bind("<B1-Motion>", self.myPen)
        elif name == "erasor":
            self.drawpad.bind("<B1-Motion>", self.myErasor)
        elif name == "clear":
            self.drawpad.delete("all")
        elif name == "color":
            c = askcolor(color=self.fgcolor, title="选择画笔颜色")
            self.fgcolor = c[1]
    def stopDraw(self, event):
        self.startDrawFlag = False
        self.lastDraw = 0
    def startDraw(self, event):
        self.drawpad.delete(self.lastDraw)
        if not self.startDrawFlag:
            self.startDrawFlag = True
            self.x = event.x
            self.y = event.y
    def myline(self, event):
        self.startDraw(event)
        self.lastDraw = self.drawpad.create_line(self.x, self.y, event.x, event.y, fill = self.fgcolor)
    def mylineArrow(self, event):
        self.startDraw(event)
        self.lastDraw = self.drawpad.create_line(self.x, self.y, event.x, event.y, arrow = LAST, fill = self.fgcolor)
    def myRect(self, event):
        self.startDraw(event)
        self.lastDraw = self.drawpad.create_rectangle(self.x, self.y, event.x, event.y, outline = self.fgcolor)
    def myPen(self, event):
        self.startDraw(event)
        self.drawpad.create_line(self.x, self.y, event.x, event.y, fill = self.fgcolor)
        self.x = event.x
        self.y = event.y
    def myErasor(self, event):
        self.startDraw(event)
        self.drawpad.create_rectangle(event.x-25, event.y-25, event.x, event.y, outline = self.bgcolor)
        self.x = event.x
        self.y = event.y
    def kuaijiejian(self, event):
        if event.char == "r":
            self.fgcolor = "#ff0000"
        elif event.char == "g":
            self.fgcolor == "#00ff00"
        elif event.char == "y":
            self.fgcolor == "#ffff00"
    
if __name__ == '__main__':
    root = Tk()
    root.geometry(str(win_width) + "x" + str(win_height) + "+200+300")
    root.title("画图软件")
    app = Application(master = root)
    root.mainloop()

老师为什么我这串代码实现不了快捷键的功能

Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 29330楼

Using TensorFlow backend.

C:\Users\lenovo-w\PycharmProjects\deepphos\methods\phosnet1.py:122: UserWarning: Update your `Conv1D` call to the Keras 2 API: `Conv1D(32, 1, activation="relu", padding="same", kernel_initializer="RandomUniform", kernel_regularizer=<keras.reg..., use_bias=False)`

  W_regularizer=l2(weight_decay))(main_input)

2020-09-21 19:09:41.384350: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2

2020-09-21 19:09:41.405531: I tensorflow/core/common_runtime/process_util.cc:147] Creating new thread pool with default inter op setting: 2. Tune using inter_op_parallelism_threads for best performance.

C:\Users\lenovo-w\PycharmProjects\deepphos\methods\phosnet1.py:30: UserWarning: Update your `Conv1D` call to the Keras 2 API: `Conv1D(32, 13, activation="relu", padding="same", kernel_initializer="RandomUniform", kernel_regularizer=<keras.reg..., use_bias=False)`

  W_regularizer=l2(weight_decay))(x)

Traceback (most recent call last):

  File "C:/Users/lenovo-w/PycharmProjects/deepphos/predict.py", line 82, in <module>

    hierarchy='group', kinase='AGC')

  File "C:/Users/lenovo-w/PycharmProjects/deepphos/predict.py", line 56, in predict_for_deepphos

    model = model_net(X_test1, X_test2, X_test3, y_test,nb_epoch = 0)

  File "C:\Users\lenovo-w\PycharmProjects\deepphos\methods\model_n.py", line 58, in model_net

    dense_number, dropout_rate, dropout_dense, weight_decay)

  File "C:\Users\lenovo-w\PycharmProjects\deepphos\methods\phosnet1.py", line 136, in Phos

    weight_decay=weight_decay)

  File "C:\Users\lenovo-w\PycharmProjects\deepphos\methods\phosnet1.py", line 87, in denseblock

    x = merge(list_feat, mode='concat', concat_axis=concat_axis)

TypeError: 'module' object is not callable


Process finished with exit code 1

报的错误

from keras.models import Model
from keras.layers.core import Dense, Dropout, Activation
from keras.layers.convolutional import Convolution2D
from keras.layers.pooling import AveragePooling2D, AveragePooling1D
from keras.layers.pooling import GlobalAveragePooling2D,GlobalAveragePooling1D
from keras.layers import Input, merge, Flatten
from keras.layers.normalization import BatchNormalization
from keras.regularizers import l2
import keras.backend as K
from keras.layers import Conv1D,Conv2D, MaxPooling2D


def conv_factory(x, init_form, nb_filter, filter_size_block, dropout_rate=None, weight_decay=1E-4):
    """Apply BatchNorm, Relu 3x3Conv2D, optional dropout

    :param x: Input keras network
    :param nb_filter: int -- number of filters
    :param dropout_rate: int -- dropout rate
    :param weight_decay: int -- weight decay factor

    :returns: keras network with b_norm, relu and convolution2d added
    :rtype: keras network
    """
    #x = Activation('relu')(x)
    x = Conv1D(nb_filter, filter_size_block,
                      init=init_form,
                      activation='relu',
                      border_mode='same',
                      bias=False,
                      W_regularizer=l2(weight_decay))(x)
    if dropout_rate:
        x = Dropout(dropout_rate)(x)

    return x


def transition(x, init_form, nb_filter, dropout_rate=None, weight_decay=1E-4):
    """Apply BatchNorm, Relu 1x1Conv2D, optional dropout and Maxpooling2D

    :param x: keras model
    :param nb_filter: int -- number of filters
    :param dropout_rate: int -- dropout rate
    :param weight_decay: int -- weight decay factor

    :returns: model
    :rtype: keras model, after applying batch_norm, relu-conv, dropout, maxpool

    """
    #x = Activation('relu')(x)
    x = Conv1D(nb_filter, 1,
                      init=init_form,
                      activation='relu',
                      border_mode='same',
                      bias=False,
                      W_regularizer=l2(weight_decay))(x)
    if dropout_rate:
        x = Dropout(dropout_rate)(x)
    #x = AveragePooling2D((2, 2),padding='same')(x)
    x = AveragePooling1D(pool_size=2, padding='same')(x)

    return x


def denseblock(x, init_form, nb_layers, nb_filter, growth_rate,filter_size_block,
               dropout_rate=None, weight_decay=1E-4):
    """Build a denseblock where the output of each
       conv_factory is fed to subsequent ones

    :param x: keras model
    :param nb_layers: int -- the number of layers of conv_
                      factory to append to the model.
    :param nb_filter: int -- number of filters
    :param dropout_rate: int -- dropout rate
    :param weight_decay: int -- weight decay factor

    :returns: keras model with nb_layers of conv_factory appended
    :rtype: keras model

    """

    list_feat = [x]
    concat_axis = -1

    for i in range(nb_layers):
        x = conv_factory(x, init_form, growth_rate, filter_size_block, dropout_rate, weight_decay)
        list_feat.append(x)
        x = merge(list_feat, mode='concat', concat_axis=concat_axis)
        nb_filter += growth_rate
    return x

def Phos(nb_classes, nb_layers,img_dim1,img_dim2,img_dim3, init_form, nb_dense_block,
             growth_rate,filter_size_block1,filter_size_block2,filter_size_block3,
             nb_filter, filter_size_ori,
             dense_number,dropout_rate,dropout_dense,weight_decay):
    """ Build the DenseNet model

    :param nb_classes: int -- number of classes
    :param img_dim: tuple -- (channels, rows, columns)
    :param depth: int -- how many layers
    :param nb_dense_block: int -- number of dense blocks to add to end
    :param growth_rate: int -- number of filters to add
    :param nb_filter: int -- number of filters
    :param dropout_rate: float -- dropout rate
    :param weight_decay: float -- weight decay
    :param nb_layers:int --numbers of layers in a dense block
    :param filter_size_ori: int -- filter size of first conv1d
    :param dropout_dense: float---drop out rate of dense

    :returns: keras model with nb_layers of conv_factory appended
    :rtype: keras model

    """
    # first input of 33 seq #
    main_input = Input(shape=img_dim1)
    #model_input = Input(shape=img_dim)
    # Initial convolution
    x1 = Conv1D(nb_filter, filter_size_ori,
                      init = init_form,
                      activation='relu',
                      border_mode='same',
                      bias=False,
                      W_regularizer=l2(weight_decay))(main_input)

    # Add dense blocks
    for block_idx in range(nb_dense_block - 1):
        x1 = denseblock(x1, init_form, nb_layers, nb_filter, growth_rate,filter_size_block1,
                                  dropout_rate=dropout_rate,
                                  weight_decay=weight_decay)
        # add transition
        x1 = transition(x1, init_form, nb_filter, dropout_rate=dropout_rate,
                       weight_decay=weight_decay)

    # The last denseblock does not have a transition
    x1 = denseblock(x1, init_form, nb_layers, nb_filter, growth_rate,filter_size_block1,
                              dropout_rate=dropout_rate,
                              weight_decay=weight_decay)

    x1 = Activation('relu',name='seq1')(x1)

    # second input of 21 seq #
    input2 = Input(shape=img_dim2)
    x2 = Conv1D(nb_filter, filter_size_ori,
                init=init_form,
                activation='relu',
                border_mode='same',
                bias=False,
                W_regularizer=l2(weight_decay))(input2)

    # Add dense blocks
    for block_idx in range(nb_dense_block - 1):
        x2 = denseblock(x2, init_form, nb_layers, nb_filter, growth_rate, filter_size_block2,
                        dropout_rate=dropout_rate,
                        weight_decay=weight_decay)
        # add transition
        x2 = transition(x2, init_form, nb_filter, dropout_rate=dropout_rate,
                        weight_decay=weight_decay)

    # The last denseblock does not have a transition
    x2 = denseblock(x2, init_form, nb_layers, nb_filter, growth_rate, filter_size_block2,
                    dropout_rate=dropout_rate,
                    weight_decay=weight_decay)

    x2 = Activation('relu')(x2)

    #third input seq of 15 #
    input3 = Input(shape=img_dim3)
    x3 = Conv1D(nb_filter, filter_size_ori,
                init=init_form,
                activation='relu',
                border_mode='same',
                bias=False,
                W_regularizer=l2(weight_decay))(input3)

    # Add dense blocks
    for block_idx in range(nb_dense_block - 1):
        x3 = denseblock(x3, init_form, nb_layers, nb_filter, growth_rate, filter_size_block3,
                        dropout_rate=dropout_rate,
                        weight_decay=weight_decay)
        # add transition
        x3 = transition(x3, init_form, nb_filter, dropout_rate=dropout_rate,
                        weight_decay=weight_decay)

    # The last denseblock does not have a transition
    x3 = denseblock(x3, init_form, nb_layers, nb_filter, growth_rate, filter_size_block3,
                    dropout_rate=dropout_rate,
                    weight_decay=weight_decay)

    x3 = Activation('relu')(x3)

    # contact 3 output features #
    x = merge([x1, x2, x3], mode='concat', concat_axis=-2, name='contact_multi_seq')

    #x = GlobalAveragePooling1D()(x)

    x = Flatten()(x)

    x = Dense(dense_number,
              name ='Dense_1',
              activation='relu',init = init_form,
              W_regularizer=l2(weight_decay),
              b_regularizer=l2(weight_decay))(x)

    x = Dropout(dropout_dense)(x)
    #softmax
    x = Dense(nb_classes,
              name = 'Dense_softmax',
              activation='softmax',init = init_form,
              W_regularizer=l2(weight_decay),
              b_regularizer=l2(weight_decay))(x)

    phos_model = Model(input=[main_input,input2,input3], output=[x], name="multi-DenseNet")
    #feauture_dense = Model(input=[main_input, input2, input3], output=[x], name="multi-DenseNet")

    return phos_model

keras 2.3.1

第一个问题是可能出现了代码问题,第二个问题是,为什么一直显示'module' object is not callable,检查sys路径是没有任何问题的,而且对应文件是放在一个文件夹和包里的

Python 全系列/第二十四阶段:人工智能基础_深度学习理论和实战(旧)/Keras框架 29331楼
Python 全系列/第十阶段:Flask百战电商后台项目/Flask百战电商后台项目 29333楼
Python 全系列/第一阶段:Python入门/Python入门(动画版) 29336楼
JAVA 全系列/第三阶段:数据库编程/MySQL数据库的使用 29337楼
JAVA 全系列/第九阶段:Spring Boot实战/Spring Boot 29338楼
JAVA 全系列/第九阶段:Spring Boot实战/Spring Boot 29339楼
JAVA 全系列/第六阶段:项目管理与SSM框架/SpringMVC 29340楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637