8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

pydotplus.graphviz 与 tensorflow 的 plot_model 存在问题

NMR 2月前

71 0

我正在尝试使用 plot_model 函数和 TensorFlow 绘制我的模型并将其保存到 Ubuntu 22.04 上的文件中。Pycharm 2024.1.3。python 3.12。Tensorflow 2.16.1。我假设 Pydotplus 和 Graphviz 是

我正在尝试使用 TensorFlow 中的 plot_model 函数来绘制我的模型并将其保存到 Ubuntu 22.04 上的文件中。Pycharm 2024.1.3。python 3.12。Tensorflow 2.16.1。我假设 Pydotplus 和 Graphviz 已正确安装,或者我遗漏了某些内容。文件已创建,但已损坏(0 字节)并且无法打开。

脚本以错误结尾:回溯(最近一次调用最后一次):文件 \'/home/linuxpc/PycharmProjects/Semen_project/temp.py\',第 314 行,在 create_model(model_parameters=model_par)文件 \'/home/linuxpc/PycharmProjects/Semen_project/temp.py\',第 224 行,在 create_modeltf.keras.utils.plot_model(文件 \'/home/linuxpc/PycharmProjects/Semen_project/.venv/lib/python3.12/site-packages/keras/src/utils/model_visualization.py\',第 456 行,在 plot_modeldot.write(to_file,format=extension)文件\'/home/linuxpc/PycharmProjects/Semen_project/.venv/lib/python3.12/site-packages/pydotplus/graphviz.py\',第 1919 行,在 writefobj.write(self.create(prog, format))^^^^^^^^^^^^^^^^^^^^^^^^^^^File \'/home/linuxpc/PycharmProjects/Semen_project/.venv/lib/python3.12/site-packages/pydotplus/graphviz.py\',第 2031 行,在 createraise InvocationException(pydotplus.graphviz.InvocationException: 程序终止,状态为:-6。stderr 如下:在节点 716[0]dot 处失败:maze.c:311:chkSgraph:断言`np->cells[0]'失败

脚本的模型创建部分:gobal_input_layer = tf.keras.layers.Input(shape=layer_size[0]['1'][0])

"""Model_1 to detect fibers"""
for lnum, layer in enumerate(layer_size[0]):
    if lnum == 0:
        for vnum, val in enumerate(layer_size[0][layer]):
            if vnum == 0:
                layer = tf.keras.layers.Identity()(gobal_input_layer)
            else:
                layer = tf.keras.layers.Dense(val[0],
                                              activation="sigmoid")(layer)
                if len(val) == 2:
                    layer = tf.keras.layers.Dropout(val[1])(layer)

            output_layer = tf.keras.layers.Dense(2,
                                                 activation="sigmoid")(layer)
            intermediate = tf.keras.layers.Reshape((2, 1), input_shape=(1, 2))(output_layer)
            first_half = tf.keras.layers.Cropping1D(cropping=(0, 1))(intermediate)
            first_half = tf.keras.layers.Reshape((1,), input_shape=(1, 1))(first_half)

            second_half = tf.keras.layers.Cropping1D(cropping=(0, 1))(intermediate)
            second_half = tf.keras.layers.Reshape((1,), input_shape=(1, 1))(second_half)
    elif lnum == 1:
        for vnum, val in enumerate(layer_size[0][layer]):
            if vnum == 0:
                layer_2 = tf.keras.layers.Concatenate()([gobal_input_layer, second_half])

                layer_2 = tf.keras.layers.Identity()(layer_2)
            else:
                layer_2 = tf.keras.layers.Dense(val[0],
                                                activation="sigmoid")(layer_2)
                if len(val) == 2:
                    layer_2 = tf.keras.layers.Dropout(val[1])(layer_2)

            output_layer_2 = tf.keras.layers.Dense(2,
                                                   activation="sigmoid")(layer_2)
    else:
        raise ValueError(f"The length of layers is than 2")

outputs = tf.keras.layers.Concatenate()([output_layer_2, output_layer])
outputs = tf.keras.layers.Identity()(outputs)
model = tf.keras.Model(inputs=gobal_input_layer,
                       outputs=outputs)
model.name = model_parameters["model_name"]
return model

我尝试过 pydot、pydotplus 和 pydot-ng(从 pip 安装)——结果是一样的。Graphviz 可以通过 \'sudo apt install graphviz\' 或 \'pip install graphviz\' 安装。文件的扩展名无关紧要——我尝试过 jpg、png、pdf。安装 graphviz 后,PC 已重新启动。

Traceback 错误的最后一行没有给我任何信息,我陷入了困境。我发现 dot 出了问题,它生成了状态 [-6],但我不知道是什么问题。我猜是生成图像或/和将其写入文件时出了问题(因为崩溃后文件为空)。另一个想法是一个或多个层或模型本身无法转换为 dot。

有人能帮助我解决这个问题吗?或者建议我至少应该从哪里开始深入研究?我将不胜感激任何人提供的帮助。

帖子版权声明 1、本帖标题:pydotplus.graphviz 与 tensorflow 的 plot_model 存在问题
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由NMR在本站《ubuntu》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我正在尝试使用本教程在 ubuntu 中设置本地 DNS 服务器。https://blog.yarsalabs.com/bind9-dns-server-setup-in-docker/这是我的 docker run 命令:docker run -d -p 1153:53/tcp -p 1...

    我正在尝试使用本教程在 ubuntu 中设置本地 DNS 服务器。

    https://blog.yarsalabs.com/bind9-dns-server-setup-in-docker/
    

    这是我的 docker 运行命令:

    docker run -d -p 1153:53/tcp -p 1153:53/udp -p 127.0.0.1:953:953/tcp --rm --name=dns-master --net=labnet --ip=192.168.0.2 
    

    但是,当我尝试查询 DNS 服务器时,它显示通信错误。

    enter image description here

    enter image description here

    Dockerfile

    #Base Bind9 Image
    
    FROM internetsystemsconsortium/bind9:9.18
    
    RUN apt update \
      && apt install -y \
      bind9-doc \
      bind9-dnsutils \
      bind9-host \
      libedit2 \
      dnsutils \
      geoip-bin \
      mariadb-server \
      net-tools
    
    # Copy configuration files
    COPY configuration/named.conf.options /etc/bind/
    COPY configuration/named.conf.local /etc/bind/
    COPY configuration/db.vishnu /etc/bind/zones/
    
    # Expose Ports
    EXPOSE 53/tcp
    EXPOSE 53/udp
    EXPOSE 953/tcp
    
    # Start the Name Service
    CMD ["/usr/sbin/named", "-g", "-c", "/etc/bind/named.conf", "-u", "bind"]
    

    区域文件:db.vishnu

    $TTL    1d ; default expiration time (in seconds) of all RRs without their own TTL value
    @       IN      SOA     ns1.vishnu. root.vishnu. (
                      3      ; Serial
                      1d     ; Refresh
                      1h     ; Retry
                      1w     ; Expire
                      1h )   ; Negative Cache TTL
    
    ; name servers - NS records
         IN      NS      ns1.vishnu.
    
    ; name servers - A records
    ns1.vishnu.             IN      A      192.168.0.1
    one.vishnu.             IN      A      192.168.1.1
    two.vishnu.             IN      A      192.168.1.2
    

    命名的.conf.本地

    zone "vishnu" {    
        type master;    
        file "/etc/bind/zones/db.vishnu";
    

    不确定,我遗漏了哪里。请指点。

返回
作者最近主题: