我正在尝试使用 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。
有人能帮助我解决这个问题吗?或者建议我至少应该从哪里开始深入研究?我将不胜感激任何人提供的帮助。
我正在尝试使用本教程在 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 服务器时,它显示通信错误。
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";
不确定,我遗漏了哪里。请指点。