我刚开始使用Tensorflow,我有一个新手问题.
我知道Tensorflow是关于神经网络的,但我只是从它的机制开始.我试图让它加载,调整大小,翻转和保存两个图像.应该是一个简单的操作,对,它让我从基础开始.
到目前为止,这是我的代码:
import tensorflow as tf
import numpy as np
print("resizing images")
filenames = ['img1.png', 'img2.png' ]
filename_queue = tf.train.string_input_producer(filenames, num_epochs=1)
reader = tf.WholeFileReader()
key,value = reader.read(filename_queue)
images = tf.image.decode_png(value)
resized = tf.image.resize_images(images, 180,180, 1)
resized.set_shape([180,180,3])
flipped_images = tf.image.flip_up_down(resized)
resized_encoded = tf.image.encode_jpeg(flipped_images,name="save_me")
init = tf.initialize_all_variables()
sess = tf.Session()
with sess.as_default():
tf.train.start_queue_runners()
sess.run(init)
f = open("/tmp/foo1.jpeg", "wb+")
f.write(resized_encoded.eval())
f.close()
f = open("/tmp/foo2.jpeg", "wb+")
f.write(resized_encoded.eval())
f.close()
Run Code Online (Sandbox Code Playgroud)
它工作正常,调整两个图像的大小并保存它们.但它始终以错误结束:
W tensorflow/core/common_runtime/executor.cc:1076] 0x7f97240e7a40
Compute status: Out of range: Reached limit of 1
Run Code Online (Sandbox Code Playgroud)
我显然做错了什么.如果我取消num_epochs = …
我真的很困惑。在我的服务器日志中我看到:
org.apache.coyote.CloseNowException: Connection [215], Stream [95], This stream is not writable
at org.apache.coyote.http2.Http2UpgradeHandler.reserveWindowSize(Http2UpgradeHandler.java:843) ~[tomcat-coyote.jar:9.0.30]
at org.apache.coyote.http2.Stream$StreamOutputBuffer.flush(Stream.java:940) ~[tomcat-coyote.jar:9.0.30]
at org.apache.coyote.http2.Stream$StreamOutputBuffer.doWrite(Stream.java:859) ~[tomcat-coyote.jar:9.0.30]
at org.apache.coyote.http2.Http2OutputBuffer.doWrite(Http2OutputBuffer.java:59) ~[tomcat-coyote.jar:9.0.30]
at org.apache.coyote.Response.doWrite(Response.java:601) ~[tomcat-coyote.jar:9.0.30]
Run Code Online (Sandbox Code Playgroud)
当用户单击太快时似乎会发生这种情况,但这没有意义,因为 Tomcat 应该能够满足大量请求。这是在负载非常轻的服务器上,在一台非常快的机器上,每秒可能有 2 或 3 个 HTTP 请求。
这是 Spring Boot 2 和 Tomcat 9.0.30 的情况。实在是令人费解。
我确实在 SO 上看到了类似的问题,有人使用网络推送得到了这个,但我们没有。
以下是我们的 HTTP/2 连接器的配置方式:
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true"
keystoreFile="/etc/ssl/keys.p12"
keystorePass="changeit"
keyAlias="tomcat"
sslProtocol="TLS"
sslEnabledProtocols="TLSv1.3,TLSv1.2"
connectionTimeout="20000"
>
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol"
keepAliveTimeout="20000"
/>
</Connector>
Run Code Online (Sandbox Code Playgroud)
它在 Ubuntu 服务器 18.04 上的 JDK 13.0.2 上运行。
对此有什么想法吗?这绝对是用户注意到的事情,但我不知道如何解决这个问题。
复古打印机日:我有一台旧的 IbmPro 兼容点阵打印机,通过 USB 并行适配器连接到我的 Ubuntu 20.04 系统。它工作得很好!设置它的一个主要技巧:将 URI 设置为 /dev/usb/lp0 并确保 lp 用户在正确的组中以写入该开发。我花了一段时间才弄明白。我使用 IBMPro 通用打印机驱动程序,它很棒。其他关键提示:9600 波特,8 位,无停止位,硬件流控制。
剩下的一个问题:打印区域向左偏移约 0.5"。我确定我知道发生了什么:拖拉机进料区域约为 0.5",所以我需要以某种方式指出,不要计算拖拉机进料页边距内的区域。换句话说,整个页面宽度约为 9.5",但仅打印 8.5" 并将其向右偏移 0.5"。
我尝试编辑 PPD 文件,包括更改 HWMargins 和 ParamCustomPageSize WidthOffset 中的值。这一切似乎都没有任何影响。我已经阅读了一堆关于 PPD 文件的文档,但不清楚该怎么做。我想我可以设置一个 9.5" 宽度的自定义纸张尺寸,但我更愿意让我的所有文档都相同,并通过在生成打印机输出时偏移所有内容来正确打印。
为此必须有一个简单的设置。
编辑:尝试了更多内容,包括:转到打印机属性并转到作业选项。有一个左边距设置。我将它设置为 36 点,或半英寸,然后将打印移过去。根据需要进行调整。但这没有用。我还尝试在 PPD 中进行此更改:
ImageableArea Letter/US Letter: "18 36 612 756"
Run Code Online (Sandbox Code Playgroud)
那没有用。