One day, someone brought Dad several cases of cans the Germans had left behind. Dad opened one of them. Inside, he saw what he thought was some sort of German spam. American spam was packed in a sort of lard and the soldiers were used to eating it raw, right out of the can. Dad and others grew sick of it and thus these cans had little appeal to Dad. When a soldier from another outfit asked if he could have some, Dad gladly gave him a couple cans. A few days later, that soldier returned for more. This time, Dad gave him all he could carry. Dad was curious to see why he wanted so much, so he went to investigate. It turned out the cans contained only lard and this soldier's outfit was using it to make French fries. A little Army stove was used to boil the lard and the cut-up potatoes were added. The fries were very good and Dad and his men quickly copied the idea.
Today, when you think of French fries, what do you think of that goes with them? Why hamburger, of course. Pyle wrote about how a cow would "volunteer" to become food for the soldiers by stepping on a mine or "accidently" being shot in the head. Dad talked about a dairy at Anzio. This dairy must not have been in the town of Anzio itself, but much farther inland. In fact, it must have been up at the very front because both Dad and Jim Burns talk about seeing the German soldiers from it. The dairy had stalls with thick cement walls which offered excellent protection from the German artillery. The stalls were also dry and so the men slept in them. Dad talked about how being dry at Anzio, like it had been in the Central Alps of Southern Italy, was a luxury. There was at least one cow in the dairy because Dad and Jim talked about how someone took a sledge hammer and hit the cow in the head to kill it. It took all day, but the cow was ground into hamburger with a hand-cranked meat grinder. Jim wrote that officers probably got some steaks from it. Anyway, they had hamburger to go with the fries.
Pyle wrote that men liked to sleep in barns because of the soft hay. He even writes about his own experiences sleeping in barns. I told you that Anzio was much different than all other battles. This even goes with the Italian barns. No one wanted to sleep in them, and it wasn't just because the barns were targets for the Germans, it was more because the hay was full of fleas. There were fleas in other barns across Europe, but for some reason they were extremely thick at Anzio. The fleas were so bad that men sometimes washed their clothes in gasoline to get rid of them. Men scratched themselves from the flea bites so much they bled. Just one more miserable thing these brave men had to put up with in this miserable war.
Staying dry was one of the biggest challenges at Anzio. It rained a lot, just like it seemed to always do in Italy the year Dad was there. Since much of the Anzio beachhead was an ancient swamp, the ground was very soggy anyway. Most foxholes had an inch or two of water in the bottom and the men had to figure out how to sleep without getting wet. They put things in the bottom to keep them out of the water. One place they dug foxholes was horizontally into the side of a drainage ditch. Over the span of 2,300 years, the Italians had dug many large ditches to drain the swamp. These ditches formed a network all over the Anzio beachhead. Dad called these horizontal foxholes "caves." They must have looked a lot like the mineshafts you see in Hollywood Westerns. You might think that, since these caves were dug into the side of a drainage ditch that they would have good natural drainage and be dry. No, the ground was so soggy that the floor had to run at a slant toward the ditch. Dad talked about digging little trenches to channel the water away.
Foxholes not only had to be dug for men, but for anything else they didn't want to be a target for German artillery. Even tanks and jeeps were routinely put in foxholes to conceal them from the Germans. Tank crews did not sleep in the tanks but dug separate foxholes for themselves nearby. No one wanted to be in a tank if it was spotted by a passing German plane.
The ditches and soggy ground made movement difficult for jeeps and trucks, and tanks. It takes a lot to get a tank stuck, but those Anzio ditches were up to the task. This was a major reason why a rapid advance by either side was so difficult. It is why this battle settled into a conflict more like was seen in World War I, where each side faced off against each other for months. Another reason a rapid advance by either side was all but impossible was because of the large number of mines laid out in "no man's land," the area between the Allied and German lines.
Before Anzio, many American soldiers, including Dad, became so sick they had to be hospitalized. To be sure, soldiers at Anzio got malaria and other diseases, but not nearly to the extent they did before. Trench foot and hunger were also present, but again, not so bad as before.
Jim Burns wrote in his book that a baseball game was started at Anzio but soon ended because, "they couldn't tell the ball from the incoming shells." Dad never mentioned to me any such game at Anzio. However, in a letter to Mom he did mention playing baseball in Italy shortly after the Salerno beachhead. Playing baseball during war probably sounds more than a little strange, but the soldiers did play a game from time to time throughout this war. Dad said his team was very good and usually won.
An interesting side-note to the above story – Dad was a very good player. After he retired and lived in Florida, he played in the Senior World Series Softball Tournament. Dad's team represented the state of Florida and they won two games from teams representing other states before losing in this single-elimination tournament. Dad was very proud of the fact he played in a World Series, even if it wasn't the one you usually think of.
I will end this episode now. I have still more about life at Anzio. After that, I will catch up on Dad's actual letters from Italy before continuing this series with the Allied invasion of France.


UNITED NATIONS â€" North Korean leader Kim Jong Un's summits with the presidents of South K orea and the United States have not changed his country's abysmal human rights record, the U.N. independent investigator on human rights in the isolated Asian nation said Tuesday.
Speaking at a news conference, Tomas Ojea Quintana said he is "very concerned" that statements following Kim's meetings with South Korean President Moon Jae-in and U.S. President Donald Trump made no mention of human rights in North Korea.
He pointed to reports of "systematic, widespread abuses" of human rights and a U.N. commission of inquiry's findings in 2014 that possible crimes against humanity have been committed in North Korea.
"The human rights situation at the moment, at the moment, has not changed," Quintana said.
Quintana said dealing with North Korea's nuclear arsenal is extremely important for humanity, and he strongly supported rapprochement between the two Koreas and talks with the U.S. that have decreased tensions and improved prospects for pe ace.
But he stressed that North Korea's human rights record must not be ignored.
Quintana recalled that in his previous job as U.N. investigator in Myanmar, he raised alarm about "crimes against humanity" being committed by the military during that country's political transition in 2012 but his concerns were put aside.
"And now we see the consequences," he said, alluding to findings of military abuses against Myanmar's Rohingya Muslim minority.
"As the process of rapprochement and talks are moving so fast, we the human rights people â€" we also need to move fast and bring proposals, different proposals," Quintana said.
He said one of his proposals is to ask the new U.N. human rights chief, Michelle Bachelet, to initiate "a process of engagement" w ith North Korea.
He also urged North Korea "to show commitment to the human rights agenda" and allow him to visit the country and talks to its leaders.
Quintana, a human rights lawyer from Argentina appointed by the Geneva-based Human Rights Council, was in New York to present his latest findings to the U.N. General Assembly's human rights committee.
He said he proposed to North Korean officials in Geneva last March that the government should start releasing political prisoners as a signal of commitment to human rights.
But Quintana added that when he wrote to North Korea seeking details, he got no response.
He said in response to a question that the Trump administration has told him it supports his work and backs a General Assembly resolution condemning North Korea's human rights situa tion.
On Monday, North Korea's official KCNA news agency accused "some dishonest forces including Japan" of "working hard to cook up" a politicized resolution on human rights. It called the annual resolution the result of a "conspiratorial and criminal scenario of the hostile forces to defame" North Korea.
KCNA said Western countries should not be held up as "the human rights standard of the world," saying that "misanthropy and abnormal way of life are rampant" in the West.


text:
Q: why simple led python program not working I am testing my pi for the first time and i cant able to run the first program to light the led.
below is my code id from raspberry cookbook
import Rpi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCD)
GPIO.setup(18,GPIO.OUT)
while(True):
GPIO.output(18, True)
time.sleep(1)
GPIO.output(18,False)
time.sleep(1)

when i run the script sudo python led.py it shows no error but the led has no output. I tried connecting a 360ohms between pin 18 and led. also tried connecting 540Ohms between pin 18 and led but no result.
Can anyone suggest how to debug the problem

A: You should probably (and I don't know if either main stack or the EE-centric or the RPi spinoffs has a good way to do this inline) include some sort of diagram showing which pins you're connecting.  At a minimum, you need to do GPIO 18 to LED to GND, and as LED is Light Emitting Diode or something to that effect, you need to make sure your LED is pointing in the correct direction.  I'd suggest as a way to debug this partially, take python out of the loop and just configure the LED to be always on by writing a 1 to the appropiate /sys/blah/path.  Also, http://elinux.org/RPi_Low-level_peripherals#sysfs (which has the path you need) points out... GPIO 24 is wired to P1_18 so you might want to double check that the pin you think is 18 is called 18 on both sides of the system.

A: This should blink the light on and off and worked for me
from time import sleep
import RPi.GPIO as gpio
gpio.setmode(gpio.BCM)
gpio.setup(18, gpio.OUT)
gpio.output(18, True)
sleep(5)
gpio.output(18, False)

A: Thanks all for the comments and suggestion, when I added the GPIO.clearup() and restarted the system it starts blinking....
below is the comeple code i used...
import Rpi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCD)
GPIO.setup(18,GPIO.OUT)

while(True):

       GPIO.output(18, GPIO.HIGH)
       time.sleep(1)
       GPIO.output(18,False)
       time.sleep(1)

GPIO.CLEARUP()

THANKS EVERYONE FOR THE HELP....

redpajama_set_name: RedPajamaStackExchange


text:
Some knots
Yarn knot (ABoK #2688)
Manrope knot (ABoK #847)
Granny knot (ABoK #1206)
Wall and crown knot (ABoK #670, #671)
Matthew Walker's knot (ABoK #681)
Shroud knot (ABoK #1580)
Turk's head knot (ABoK #1278-#1397)
Overhand knot, Figure-of-eight knot (ABoK #514, #520)
Reef knot, Square knot (ABoK #1402)
Two half-hitches (ABoK #54)
Knot board [es] on Elbe 1 (ship, 1965)
A knot is an intentional complication in cordage[1] which may be practical or decorative, or both. Practical knots are classified by function, including hitches, bends, loop knots, and splices: a hitch fastens a rope to another object; a bend fastens two ends of a rope to each another; a loop knot is any knot creating a loop; and splice denotes any multi-strand knot, including bends and loops.[2] A knot may also refer, in the strictest sense, to a stopper or knob at the end of a rope to keep that end from slipping through a grommet or eye.[3] Knots have excited interest since ancient times for their practical uses, as well as their topological intricacy, studied in the area of mathematics known as knot theory.
An example of a quipu from the Inca Empire, currently in the Larco Museum Collection.
Alexander cuts the Gordian Knot, by Jean-Simon Berthélemy (1743–1812)
Gordian Knot statue (1990)
Magimagi sennit of Fiji around wooden ceiling posts.
Blackfoot "Teton" tipi tie[4]
This section needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: "Knot" – news · newspapers · books · scholar · JSTOR (December 2020) (Learn how and when to remove this template message)
Knots and knotting have been used and studied throughout history. For example, Chinese knotting is a decorative handicraft art that began as a form of Chinese folk art in the Tang and Song Dynasty (960–1279 AD) in China, later popularized in the Ming. Knot theory is the recent mathematical study of knots.
Knots of ancient origin include the bottle sling, bowline, cat's paw, clove hitch, cow hitch, double fisherman's knot, eskimo bowline, figure-eight knot, fisherman's knot, half hitch, kalmyk loop, one-sided overhand bend, overhand knot, overhand loop, reef knot, running bowline, single hitch, thief knot, Turk's head knot, and two half-hitches.
The eleven main knots of Chinese knotting are the four-flower knot, six-flower knot, Chinese button knot, double connection knot, double coin knot, agemaki, cross knot, square knot, Plafond knot, Pan Chang knot, and the good luck knot.
Knots of more recent origin include the friendship knot of Chinese knotting. The sheepshank knot originates from 1627 while the Western Union splice originates from the beginning of telegraphy.
This section needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. (July 2011) (Learn how and when to remove this template message)
There is a large variety of knots, each with properties that make it suitable for a range of tasks. Some knots are used to attach the rope (or other knotting material) to other objects such as another rope, cleat, ring, or stake. Some knots are used to bind or constrict objects. Decorative knots usually bind to themselves to produce attractive patterns.
Sailors learning knots and ropework in the early 20th century
Sailor bag with different knots
While some people can look at diagrams or photos and tie the illustrated knots, others learn best by watching how a knot is tied. Knot tying skills are often transmitted by sailors, scouts, climbers, canyoners, cavers, arborists, rescue professionals, stagehands, fishermen, linemen and surgeons. The International Guild of Knot Tyers is an organization dedicated to the promotion of knot tying.
Truckers in need of securing a load may use a trucker's hitch, gaining mechanical advantage. Knots can save spelunkers from being buried under rock. Many knots can also be used as makeshift tools, for example, the bowline can be used as a rescue loop, and the munter hitch can be used for belaying. The diamond hitch was widely used to tie packages on to donkeys and mules.
In hazardous environments such as mountains, knots are very important. In the event of someone falling into a ravine or a similar terrain feature, with the correct equipment and knowledge of knots a rappel system can be set up to lower a rescuer down to a casualty and set up a hauling system to allow a third individual to pull both the rescuer and the casualty out of the ravine. Further application of knots includes developing a high line, which is similar to a zip line, and which can be used to move supplies, injured people, or the untrained across rivers, crevices, or ravines. Note the systems mentioned typically require carabiners and the use of multiple appropriate knots. These knots include the bowline, double figure eight, munter hitch, munter mule, prusik, autoblock, and clove hitch. Thus any individual who goes into a mountainous environment should have basic knowledge of knots and knot systems to increase safety and the ability to undertake activities such as rappelling.
Knots can be applied in combination to produce complex objects such as lanyards and netting. In ropework, the frayed end of a rope is held together by a type of knot called a whipping knot. Many types of textiles use knots to repair damage. Macramé, one kind of textile, is generated exclusively through the use of knotting, instead of knits, crochets, weaves or felting. Macramé can produce self-supporting three-dimensional textile structures, as well as flat work, and is often used ornamentally or decoratively.
Knots weaken the rope in which they are made.[5] When knotted rope is strained to its breaking point, it almost always fails at the knot or close to it, unless it is defective or damaged elsewhere. The bending, crushing, and chafing forces that hold a knot in place also unevenly stress rope fibers and ultimately lead to a reduction in strength. The exact mechanisms that cause the weakening and failure are complex and are the subject of continued study. Special fibers that show differences in color in response to strain are being developed and used to study stress as it relates to types of knots.[6][7]
Relative knot strength, also called knot efficiency, is the breaking strength of a knotted rope in proportion to the breaking strength of the rope without the knot. Determining a precise value for a particular knot is difficult because many factors can affect a knot efficiency test: the type of fiber, the style of rope, the size of rope, whether it is wet or dry, how the knot is dressed before loading, how rapidly it is loaded, whether the knot is repeatedly loaded, and so on. The efficiency of common knots ranges between 40 and 80% of the rope's original strength.[8] [9]
In most situations forming loops and bends with conventional knots is far more practical than using rope splices, even though the latter can maintain nearly the rope's full strength. Prudent users allow for a large safety margin in the strength of rope chosen for a task due to the weakening effects of knots, aging, damage, shock loading, etc. The working load limit of a rope is generally specified with a significant safety factor, up to 15:1 for critical applications.[10] For life-threatening applications, other factors come into play.[citation needed]
Even if the rope does not break, a knot may still fail to hold. Knots that hold firm under a variety of adverse conditions are said to be more secure than those that do not.
The following sections describe the main ways that knots fail to hold.
Slipping
The load creates tension that pulls the rope back through the knot in the direction of the load. If this continues far enough, the working end passes into the knot and the knot unravels and fails. This behavior can worsen when the knot is repeatedly strained and let slack, dragged over rough terrain, or repeatedly struck against hard objects such as masts and flagpoles.
Even with secure knots, slippage may occur when the knot is first put under real tension. This can be mitigated by leaving plenty of rope at the working end outside of the knot, and by dressing the knot cleanly and tightening it as much as possible before loading. Sometimes, the use of a stopper knot or, even better, a backup knot can prevent the working end from passing through the knot; but if a knot is observed to slip, it is generally preferable to use a more secure knot. Life-critical applications often require backup knots to maximize safety.
To capsize (or spill) a knot is to change its form and rearrange its parts, usually by pulling on specific ends in certain ways.[8] When used inappropriately, some knots tend to capsize easily or even spontaneously. Often the capsized form of the knot offers little resistance to slipping or unraveling. A reef knot, when misused as a bend, can capsize dangerously.
Sometimes a knot is intentionally capsized as a method of tying another knot, as with the "lightning method" of tying a bowline. Some knots, such as the carrick bend, are generally tied in one form then capsized to obtain a stronger or more stable form.
In knots that are meant to grip other objects, failure can be defined as the knot moving relative to the gripped object. While the knot itself is not untied, it ceases to perform the desired function. For instance, a simple rolling hitch tied around a railing and pulled parallel to the railing might hold up to a certain tension, then start sliding. Sometimes this problem can be corrected by working-up the knot tighter before subjecting it to load, but usually the problem requires either a knot with more wraps or a rope of different diameter or material.
Releasability
Knots differ in the effort required to untie them after loading. Knots that are very difficult to untie, such as the water knot, are said to "jam" or be jamming knots. Knots that come untied with less difficulty, such as the Zeppelin bend, are referred to as "non-jamming".
A: open loop, B: closed loop, C: turn, D: round turn, E: two round turns.
#34 Cross #35 Elbow #36 Round turn
#27 End #29 Bight #28 Standing
Further information: List of knot terminology
Bight
A bight is any curved section, slack part, or loop between the ends of a rope, string, or yarn.
Bitter end
As a ropeworker's term, "bitter end" refers to the end of a rope that is tied off. In British nautical usage, the bitter end is the ship end of the anchor cable, secured by the anchor bitts and the bitter pin in the cable locker under the forecastle. At anchor, the more anchor line that is paid out, the better the anchor's hold. In a storm, if the anchor drags, ships will pay out more and more anchor line until they reach the "bitter end." At this point, they can only hope the anchor holds, hence the expression "hanging on to the bitter end". (A bitt is a metal block with a crosspin for tying lines to, also found on piers.) Also, the working end.
A curve narrower than a bight but with separate ends.
Two crossing points created by an extra twist in a loop or a circle.
Standing end
The standing end is the longer end of the rope not involved in the knot, often shown as unfinished. It is often (but not always) the end of the rope under load after the knot is complete. For example, when a clove hitch ties a boat to a pier, the end going to the boat is the standing end.
Standing part
Section of line between knot and the standing end (seen above).
A turn or single turn is a curve with crossed legs.
A round turn is the complete encirclement of an object; requires two passes.
Two round turns circles the object twice; requires three passes.
Working end
The active end of a line used in making the knot. May also be called the "running end", "live end", or "tag end".
Working part
Section of line between knot and the working end.
Knot categories
Further information: List of knots
The list of knots is extensive, but common properties allow for a useful system of categorization. For example, loop knots share the attribute of having some kind of an anchor point constructed on the standing end (such as a loop or overhand knot) into which the working end is easily hitched, using a round turn. An example of this is the bowline. Constricting knots often rely on friction to cinch down tight on loose bundles; an example is the Miller's knot. Knots may belong to more than one category.
A knot uniting two lines[11] (for knots joining two ends of the same line, see binding knots or loops). List of bends.
A knot that restricts object(s) by making multiple winds. List of binding knots.
Coil knot
Knots used to tie up lines for storage.
Decorative knot
A complex knot exhibiting repeating patterns often constructed around and enhancing an object. List of decorative knots.
A knot tied to a post, cable, ring, or spar. List of hitch knots.
A knot used to hold (usually) poles together.
A knot used to create a closed circle in a line. List of loop knots.
Plait (or braid)
A number of lines interwoven in a simple regular pattern. List of plait knots.
Slip (or running)
A knot tied with a hitch around one of its parts. In contrast, a loop is closed with a bend. While a slip knot can be closed, a loop remains the same size. List of slip knots.
Some knots may be finished by passing a bight rather than the end, for ease of untying. The common shoelace knot is an example, being a reef knot with both ends slipped.
Seizing
A knot used to hold two lines or two parts of the same line together.[11] List of seizing knots.
Sennit
A number of lines interwoven in a complex pattern. See also Chain sinnet.
A knot formed by interweaving strands of rope rather than whole lines. More time-consuming but usually stronger than simple knots. List of splices.
A knot tied to hold a line through a hole.
A binding knot used to prevent another line from fraying.
Basic useful knots
Alpine butterfly knot for a secure loop in the middle of a rope when the ends aren't free
Bowline for tying a loop in the end of a rope, as around one's waist or to secure a ring or grommet. The knot is also used as an anchor knot and is used in many knot systems that are used in mountainous terrain such as a highline or hauling system.
Constrictor knot for making bundles or cinching the neck of a sack, though this knot jams and may need to be cut
Figure-eight knot as a stopper
Grass bend for tying belts together, though insecure with ropes
Monkey's fist used to weight the end of a rope
Prusik for ascending a rope
Reef knot (square knot), a common but insecure binding knot for joining the ends of a piece of cordage wrapped around an object or objects
Sheet bend for joining the ends of two ropes, which need not be the same diameter
Double sheet bend for tying the ends of two dissimilarly sized ropes together
Spanish bowline used to hoist crewmen aloft or suspend them over the side
Versatackle for hoisting heavy loads and tightening rigging
Water knot for tying a knot in flat material such as nylon webbing
Anchor bend (or anchor hitch) for tying a rope to a boat anchor
Clove hitch for tying a rope to a pole – simple and won't jam, but not particularly secure and won't work on rectangular shapes
Buntline hitch for tying a rope to a pole or other shape, but can jam
Diamond hitch for packing trail animals
Rolling hitch for securing a rope to a pole when the pull is lengthwise rather than outward, or to tie one rope to the middle of another
Taut-line hitch (or Midshipman's hitch) for forming an adjustable (ratcheting) loop that does not slip smaller under tension
Timber hitch for securing or hauling long narrow loads, with the pull in one direction
Trucker's hitch for clinching down a load
Trick knots
Trick knots are knots that are used as part of a magic trick, a joke, or a puzzle. They are useful for these purposes because they have a deceptive appearance, being easier or more difficult to tie or untie than their appearance would suggest. The easiest trick knot is the slip knot.[12] Other noted trick knots include:
Grief knot. The starkly differing behavior of the knot, depending on how it is arranged, has been exploited as the basis of a parlor trick.[13] When pulling on the standing ends the knot starts slipping and the working ends become crossed. By twisting the working ends so that they uncross and then recross in reverse, the knot's structure capsizes so that it will no longer slip. The twisting motion resembles the turning of a key, "locking" and "unlocking" the knot.
Tom fool's knot, used as a trick knot due to the speed with which it can be made.
Coxcombing
Coxcombing is a decorative knotwork performed by sailors during the Age of Sail.
The general purpose was to dress-up, protect, or help identify specific items and parts of ships and boats.
It is still found today in some whippings and wrappings of small diameter line on boat tillers and ships' wheels to enhance the grip, or to identify rudder amidships.
Knots used in coxcombing include Turk's head knot, Flemish, French whipping, and others.
Knot theory
Main article: Knot theory
A trefoil knot is a mathematical version of an overhand knot.
Knot theory is a branch of topology. It deals with the mathematical analysis of knots, their structure and properties, and with the relationships between different knots. In topology, a knot is a figure consisting of a single loop with any number of crossing or knotted elements: a closed curve in space which may be moved around so long as its strands never pass through each other. As a closed loop, a mathematical knot has no proper ends, and cannot be undone or untied; however, any physical knot in a piece of string can be thought of as a mathematical knot by fusing the two ends. A configuration of several knots winding around each other is called a link. Various mathematical techniques are used to classify and distinguish knots and links. For instance, the Alexander polynomial associates certain numbers with any given knot; these numbers are different for the trefoil knot, the figure-eight knot, and the unknot (a simple loop), showing that one cannot be moved into the other (without strands passing through each other).[14]
Physical theory of friction knots
See also: Capstan equation
A simple mathematical theory of hitches has been proposed by Bayman[15] and extended by Maddocks and Keller.[16] It makes predictions that are approximately correct when tested empirically.[17] No similarly successful theory has been developed for knots in general.
This section does not cite any sources. Please help improve this section by adding citations to reliable sources. Unsourced material may be challenged and removed. (January 2011) (Learn how and when to remove this template message)
The Ashley Book of Knots is considered the definitive work on the topic
Knot tying consists of the techniques and skills employed in tying a knot in rope, nylon webbing, or other articles. The proper tying of a knot can be the difference between an attractive knot and a messy one, and occasionally life and death. It is important to understand the often subtle differences between what works, and what doesn't. For example, many knots "spill" or pull through, particularly if they are not "backed up," usually with a single or double overhand knot to make sure the end of the rope doesn't make its way through the main knot, causing all strength to be lost.
The tying of a knot may be very straightforward (such as with an overhand knot), or it may be more complicated, such as a monkey's fist knot. Tying knots correctly requires an understanding of the type of material being tied (string, cord, monofilament line, kernmantle rope, or nylon webbing). For example, cotton string may be very small and easy to tie with much internal friction to keep it from falling apart once tied, while stiff 5/8" thick kernmantle rope will be very difficult to tie, and may be so slick as to tend to come apart once tied.
The form of the material will influence the tying of a knot as well. Rope is round in cross-section, and has little dependence upon the manner in which the material is tied. Nylon webbing, on the other hand, is flat, and usually "tubular" in construction, meaning that it is spiral-woven, and has a hollow core. In order to retain as much of the strength as possible with webbing, the material must be tied "flat" such that parallel sections do not cross, and that the sections of webbing are not twisted when they cross each other within a knot.
The crossing of strands is important when dealing with round rope in other knots; for example, the figure-eight loop loses strength when strands are crossed while the knot is being "finished" and tightened. Moreover, the standing end or the end from which the hauling will be done must have the greater radius of curvature in the finished knot to maximize the strength of the knot.
Tools are sometimes employed in the finishing or untying of a knot, such as a fid, a tapered piece of wood that is often used in splicing. With the advent of wire rope, many other tools are used in the tying of "knots." However, for cordage and other non-metallic appliances, the tools used are generally limited to sharp edges or blades such as a sheepsfoot blade, occasionally a fine needle for proper whipping of laid rope, a hot cutter for nylon and other synthetic fibers, and (for larger ropes) a shoe for smoothing out large knots by rolling them on the ground.
Use by animals
The hagfish is known to strip slime from its skin by tying itself into a simple overhand knot, and moving its body to make the knot travel toward the tail. It also uses this action in reverse (tail to head) to pry out flesh after biting into a carcass.
Circuit topology
Chinese knotting
International Guild of Knot Tyers
List of knots
^ Ashley, Clifford W. (1944), The Ashley Book of Knots, New York: Doubleday, p. 12, The word knot has three distinct meanings in common use. In the broadest sense it applies to all complications in cordage, except accidental ones, such as snarls and kinks, and complications adapted for storage, such as coils, hanks, skeins, balls, etc.
^ Ashley, Clifford W. (1944), The Ashley Book of Knots, New York: Doubleday, p. 12
^ Ashley, Clifford W. (1944), The Ashley Book of Knots, New York: Doubleday, p. 12, In its second sense it does not include bends, hitches, splices, and sinnets, and in its third and narrowest sense the term applies only to a knob tied in a rope to prevent unreeving, to provide a handhold, or (in small material only) to prevent fraying.
^ Anthropological Papers of the American Museum of Natural History. Material culture of the Blackfoot Indians. 1910.
^ Richards, Dave (2005). "Knot Break Strength vs Rope Break Strength". Nylon Highway. Vertical Section of the National Speleological Society (50). Retrieved 2010-10-11.
^ Greenfieldboyce, Nell (January 2, 2020). "A Knotty Problem Solved". All Things Considered. Retrieved 3 January 2020.
^ Patil, Vishal P.; Sandt, Joseph D.; Kolle, Mathias; Dunkel, Jörn (3 January 2020). "Topological Mechanics of Knots and Tangles". Science. 367 (6473): 71–75. Bibcode:2020Sci...367...71P. doi:10.1126/science.aaz0135. PMID 31896713. S2CID 209677605.
^ a b Warner, Charles (1996), "Studies on the Behaviour of Knots", in Turner, J.C.; van de Griend, P. (eds.), History and Science of Knots, K&E Series on Knots and Everything, vol. 11, Singapore: World Scientific Publishing, pp. 181–203, ISBN 978-981-02-2469-1
^ Šimon, J.; Dekýš, V.; Palček, P. (2020). "Revision of Commonly Used Loop Knots Efficiencies". Acta Physica Polonica A. 138 (3): 404–420. doi:10.12693/APhysPolA.138.404.
^ "Knot & Rope Safety". Animated Knots by Grog. 2010. Archived from the original on April 7, 2015. Retrieved 2010-09-14. . "Knot & Rope Safety", AnimatedKnots.com. Accessed April 2016.
^ a b Chisholm, Hugh, ed. (1911). "Knot" . Encyclopædia Britannica. Vol. 15 (11th ed.). Cambridge University Press. p. 871.
^ Karl Fulves, Joseph K. Schmidt, Self-Working Rope Magic: 70 Foolproof Tricks (1990), page 17.
^ Ashley, Clifford W. (1944), The Ashley Book of Knots, New York: Doubleday, p. 415
^ Nakanishi, Yasutaka; Okada, Yuki (2012). "Differences of Alexander polynomials for knots caused by a single crossing change". Topology and Its Applications. 159 (4): 1016–1025. doi:10.1016/j.topol.2011.11.023.
^ Bayman, "Theory of hitches," Am J Phys, 45 (1977) 185
^ Maddocks, J.H. and Keller, J. B., "Ropes in Equilibrium," SIAM J Appl. Math., 47 (1987), pp. 1185–1200.
^ "The physics of knots". www.lightandmatter.com.
Clifford W. Ashley. The Ashley Book of Knots. Doubleday, New York. ISBN 0-385-04025-3.
Geoffrey Budworth (1999). The Ultimate Encyclopedia of Knots & Ropework. Annes Publishing Limited. ISBN 1-55267-986-1.
John Cassidy (1985). The Klutz Book of Knots. Klutz Press, Palo Alto, California. ISBN 0-932592-10-4.
Paul Hasluck with foreward by Des Pawson (2018) The Art of Tying Knots. Endless Mountains Publishing Company. ISBN 0-998852-73-2.
Cyrus L. Day. Knots & Splices. International Marine/McGraw-Hill Companies. ISBN 0-87742-252-4.
Raoul Graumont. Handbook of Knots. Cornell Maritime Press/Tidewater Publishers. ISBN 0-87033-030-6.
R.S. Lee. All The Knots You Need. Algrove Publishing. ISBN 0-921335-47-4.
Allen Padgett and Bruce Smith. On Rope. National Speleological Society. ISBN 0-9615093-2-5.
Des Pawson (2001). Pocket Guide to Knots & Splices. Produced for Propsero Books by RPC Publishing Ltd., London. ISBN 1-55267-218-2.
Brion Toss. The Complete Rigger's Apprentice. International Marine/McGraw-Hill Companies. ISBN 0-07-064840-9.
J. C. Turner and P. van de Griend (ed.) (1996). History and Science of Knots. World Scientific. ISBN 981-02-2469-9.
Šimon, J.; Dekýš, V.; Palček, P. (2020). "Revision of Commonly Used Loop Knots Efficiencies". Acta Physica Polonica A. 138 (3): 404–420. doi:10.12693/APhysPolA.138.404.
Aldridge, Arthur F. (1918). Knots, a study of marlinespike seamanship which embraces bends, hitches, ties, fastenings and splices and their practical application. New York City: Rudder. OCLC 1047502131. OL 18970340M.
Burgess, J. Tom (1884). Knots, ties and splices; a handbook for seafarers, travellers, and all who use cordage; with historical, heraldic, and practical notes. London: George Routledge and sons. OL 24176273M.
Dana, Homer Jackson; Pearl, William Armour (1922). The use of ropes and tackle. Pullman, WA: Washington State College. OCLC 1158196429.
Hasluck, Paul Nooncree (1907). Knotting and splicing ropes and cordage. Philadelphia: David McKay. OL 6954703M.
Verrill, Alpheus Hyatt (1917). Knots, Splices and Rope Work. Norman W. Henley Publishing.
Wikibooks has a book on the topic of: Simplified list of knots
Wikimedia Commons has media related to Knots.
Knots at Curlie
List of knot terminology
Albright special
Ashley's
Alpine butterfly
Double fisherman's
Fisherman's
Heaving line
One-sided overhand
Simple Simon under
Single carrick
Surgeon's
Surgeon's loop
Triple fisherman's
True lover's
Bottle sling
Ground-line hitch
Jamming
Miller's
Packer's
Strangle
Autoblock
Bowline on a bight
Directional figure eight
Double bowline
Farmer's loop
Figure-eight
Figure-eight loop
Figure-of-nine loop
Friction hitch
Klemheist
Munter hitch
Overhand loop
Prusik
Trident loop
Yosemite bowline
Coils &
Chain sinnet
Sheepshank
Carrick mat
Chinese button
Celtic button
Fiador
Ghiordes & Senneh
Wall and crown (triple crown knot)
(angling)
Angler's loop
Bimini twist
Improved clinch
Knotless
Adjustable grip
Anchor bend
Bale sling
Blake's
Buntline
Cat's paw
Double overhand noose
Falconer's
Farrimond friction
Ground-line
Highwayman's
Hitching tie
Killick
Knute
Lobster buoy
Marlinespike
Ossel
Sailor's
Taut-line
Trucker's
Angler's
Artillery loop
Bale sling hitch
Carrick bend loop
Cossack
Cowboy bowline
Dropper loop
Eskimo bowline
Fireman's chair
Friendship knot
Halter hitch
Handcuff
Jury mast
Overhand
Portuguese bowline
Rigid double splayed loop in the bight
Slippery eight
Spanish bowline
Tom fool's
Triple bowline
Water bowline
(slip)
Hangman's
Running bowline
Running highwayman's hitch
Tarbuck
Splices &
Marlinspike
Rat-tail
Ashley's stopper
Double overhand
Stevedore
Overhand knot with draw-loop
Sailmaker's
Lists of knots
Decorative knots
Hitches (friction)
Mizuhiki
Norigae
Ropework
Mathematics and art
Hyperboloid structure
Paraboloid
Plastic number
Projective geometry
Wallpaper group
Algorithmic art
Anamorphic art
Fractal art
Islamic geometric patterns
Girih
Muqarnas
Zellij
Croatian interlace
List of works designed with the golden ratio
Octacube
Pi in the Sky
Pyramid of Khufu
Parmigianino
Self-portrait in a Convex Mirror
The Ancient of Days
Jean Metzinger
Danseuse au café
L'Oiseau bleu
M. C. Escher
Circle Limit III
La condition humaine
The Swallow's Tail
Crockett Johnson
Martin and Erik Demaine
Scott Draves
Jan Dibbets
Helaman Ferguson
Peter Forakis
Susan Goldstine
Bathsheba Grossman
George W. Hart
Desmond Paul Henry
Charles Jencks
Garden of Cosmic Speculation
Andy Lomas
Robert Longhurst
Jeanette McLeod
Hamid Naderi Yeganeh
István Orosz
Hinke Osinga
Antoine Pevsner
Tony Robbin
Alba Rojo Cama
Reza Sarhangi
Oliver Sin
Daina Taimiņa
Roman Verostko
Margaret Wertheim
Theorists
Vitruvius
De architectura
De pictura
De re aedificatoria
De prospectiva pingendi
Luca Pacioli
De divina proportione
A Treatise on Painting
Vier Bücher von Menschlicher Proportion
Sebastiano Serlio
Regole generali d'architettura
Andrea Palladio
I quattro libri dell'architettura
Samuel Colman
Nature's Harmonic Unity
Frederik Macody Lund
Ad Quadratum
Jay Hambidge
The Greek Vase
The Grammar of Ornament
Ernest Hanbury Hankin
The Drawing of Geometric Patterns in Saracenic Art
G. H. Hardy
A Mathematician's Apology
George David Birkhoff
Aesthetic Measure
Douglas Hofstadter
Gödel, Escher, Bach
Nikos Salingaros
The 'Life' of a Carpet
Journal of Mathematics and the Arts
Making Mathematics with Needlework
Rhythm of Structure
Viewpoints: Mathematical Perspective and Fractal Geometry in Art
Ars Mathematica
The Bridges Organization
European Society for Mathematics and the Arts
Goudreau Museum of Mathematics in Art and Science
Institute For Figuring
Mathemalchemy
National Museum of Mathematics
Droste effect
Seamanship (seafaring) topics
Watchkeeping
Ice navigation
Nautical terms
Ship stability
Ship-to-ship cargo transfer
Propeller walk
Passage planning
Dry-docking
Man overboard rescue turn
Buoyage

redpajama_set_name: RedPajamaCommonCrawl


Rustic kitchen cabinets – They say comparisons are odious and therefore it is not our intention with this article start a war between modern kitchens and rustic. Both have advantages and disadvantages and both have loyal followers and very tough opponents. Without going into polemics and without showing any preference, today we are going to give aside minimalist designs of modern style to focus on kitchens lifetime.
An old demolished barn is starting point of this modern kitchen but undeniable air of rustic style. wood that have been used in these solid kitchen cabinets are made precisely with materials salvaged barn. Sustainable and ecological design of old to create a practical, functional and modern kitchen that reinvents rustic kitchen cabinets with a model of past to look to future without complexes.
Rustic kitchen cabinets style has charm of old things and fresh air of country. So even though we decant by more modern designs for kitchen we can give some rural touch with small details. So it is in this kitchen with two heights: flowers and vines, wicker baskets and wooden beams give it a rural air that make us feel like in those eternal summers at my grandparents' house.
This. Familys style and bathroom reno project amy winnie of both worlds in the twin cities. Modern rustic kitchen, mixture of photo is complemented by michael and find inspiration amazing gallery of charming than you are by michael and more on k i were you i have or contrasting tones such a budget decor ideas decorating ideas of my kitchen collect this rustic kitchen designs and welcoming spaces for designing modern rustic country kitchen island. The kitchen should definitely be told gathered a comfort and the old wooden boards. To share my kitchenbut heres hoping you will for the.


text:
\section{Introduction}
\noindent
Deep neural networks show considerable promise for the rapid analysis of data collected at scientific experiments,
enabling tasks such as anomaly detection~\cite{chandola2009anomaly}, image enhancement~\cite{yang2018low-enhance}, and image reconstruction~\cite{schlemper2017deep} to be performed in a fraction of the time
required by conventional methods.
However, the substantial computational costs of deep models are an obstacle to their widespread adoption.
The graphical processing unit (GPU) devices that are typically used to run these models are too expensive to be
dedicated to individual instruments,
while dispatching analysis tasks to shared data centers can require substantial data movement and incur large round trip latencies.

Specialized ``edge'' inference devices~\cite{xu2018scaling} such as the NVIDIA Jetson Tx2 GPU (henceforth \texttt{TX2}{}) \cite{nvidia-jetson-Tx2}
and Google Edge TPU~\cite{google-coral}
are potential solutions to this problem.
(The Edge TPU is distributed by Coral Inc.\ in two configurations: \texttt{Accelerator}{}, which relies on a host machine, such as a PC or single-board Raspberry Pi, and \texttt{Dev Board}{}, which comes with a 64-bit ARM system as host.)
These edge devices use techniques such as reduced precision arithmetic to enable rapid execution of deep models
with a low price point (and low power consumption and compact form factor) that makes it feasible to embed them within scientific instruments.

The question remains, however, as to whether these edge inference devices can execute the deep models used in science with sufficient speed
and accuracy.
Models originally developed to run on GPUs that support 32-bit floating point arithmetic must be adapted to run on edge devices that may support only
lower-precision integer arithmetic, a process that typically employs a technique called model quantization \cite{park2018value,hou2018loss,krishnamoorthi2018quantizing}.
Google and NVIDIA have developed implementations of such schemes, allowing inference with integer-only arithmetic on integer-only hardware \cite{google-quantization, migacz2017nvidia-tensorrt, tflite-google}.
They report benchmark results showing that edge devices can perform inference as rapidly as a powerful PC, at much lower cost \cite{coral-google-benchmark,nvidia-benchmarks}.
However, questions remain when it comes to using such devices in scientific settings.
The resulting models will be more compact, but will they be sufficiently accurate?
And will the edge device run the models rapidly enough to meet scientific goals?

We explore these questions here by studying how a specific scientific deep learning model, TomoGAN{}\footnote{Code available at \url{git@github.com:ramsesproject/TomoGAN.git}}~\cite{tomogan-anl,tomogan-stream},
can be adapted for edge deployment.
TomoGAN{} uses generative adversarial network (GAN) methods~\cite{gan} to enhance the quality of low-dose X-ray images via a denoising process.
Although diverse object detection and classification applications have been implemented on edge devices,
image restoration with a complex image generative model has not previously been attempted on them.
We adapt TomoGAN to run on the Google Edge TPU (both \texttt{Accelerator}{} and \texttt{Dev Board}{}) and \texttt{TX2}{}, and compare the accuracy and computational performance of the resulting models with those of other implementations.
We also describe how to mitigate accuracy loss in quantized models by applying a lightweight ``fine-tuning'' convolutional neural network
to the results of the quantized TomoGAN.

The rest of this paper is as follows.
In \S\ref{s:methodology}, we describe how we adapt a pre-trained deep learning model, TomoGAN{}, for the Edge TPU.
Next in \S\ref{s:experiments}, we present experiments used to evaluate edge computing performance and model accuracy,
both with and without the fine-tuning component.
In \S\ref{s:related-work} we review related work, and in \S\ref{s:conclusion} we summarize our results and outline directions for future work.
\section{Methodology}\label{s:methodology}
\noindent
We next describe how we adapt the TomoGAN{} model for the \texttt{Edge-TPU}{} (i.e., \texttt{Accelerator}{} and \texttt{Dev Board}{}).
Specifically, we describe the steps taken to improve the accuracy of the enhanced images, the datasets used, and our performance and accuracy evaluations.

\subsection{Quantization}
\noindent
We consider two approaches to quantizing
the TomoGAN{} model for the Edge TPU: \texttt{Post-Quantization}{} and \texttt{Quantization-Aware}{}. In both methods, the first step is to design a non-quantized model with the expected features unique to both \texttt{Post-Quantization}{} and \texttt{Quantization-Aware}{} models.

\subsubsection{Post-Quantization-Based Inference Model}\label{ss:pqt}
\noindent
The steps followed to generate the \texttt{Post-Quantization}{}-based inference model are shown in
 \autoref{fig:tomogan-post-quantization-workflow}.

We first train a \texttt{Post-Quantization}{}-based model, which differs from the standard TomoGAN{} model only in the input tensor shape,
which is 64$\times$64$\times$3 rather than 1024$\times$1024$\times$3.
The partitioning of each 1024$\times$1024 input image into multiple 64$\times$64 subimages is needed because of limitations on the output size
permitted by the \texttt{Edge-TPU-Compatible}{}.
See \S\ref{ss:datasets} for details on training data.
The average training time for 40,000 iterations was around 24 hours on a single NVIDIA V100 GPU.

The resulting trained \texttt{Post-Quantization}{} model is then converted to a \texttt{Mobile-Compatible}{} model (see \S\ref{sss:mobile-compatible}),
which is used in term to generate an \texttt{Edge-TPU-Compatible}{} model (see \S\ref{sss:edgetpu-comp-model-gen}).

\begin{figure}[htbp]
  \centering
  \includegraphics[width=\columnwidth]{images/new_pqt_v3.pdf}
  \caption{The \texttt{Post-Quantization}{} model generation workflow involves a training step, conversion of the trained model to a mobile form, and then
  conversion of the mobile form to an Edge TPU model.}
  \label{fig:tomogan-post-quantization-workflow}
\end{figure}

\subsubsection{Quantization-Aware Based Inference Model}\label{sss:qtaw-inference-model}
This second approach (\S\ref{fig:tomogan-quantization-aware-workflow}) differs from the first only in the method used to generate the trained model.
In order to attenuate the accuracy loss that may result from the quantization of trained weights in the inference stage,
a more complex model is trained that induces fake quantization layers to simulate the effect of quantization.

\begin{figure}[htbp]
  \centering
  \includegraphics[width=\columnwidth]{images/new_qtaw_v4.pdf}
  \caption{The \texttt{Quantization-Aware}{} model generation workflow differs from the  \texttt{Post-Quantization}{} workflow only in its training step.}
  \label{fig:tomogan-quantization-aware-workflow}
\end{figure}

The major drawback of this methodology is that the introduction of fake quantization layers leads to a much longer training time, extending to dozens of days.
We thus conclude that this method is not feasible for larger models like TomoGAN{},
and
adopt the \texttt{Post-Quantization}{} approach for our TomoGAN{}-based image restoration system.

\subsection{Model Generation}
\noindent
There are specific model generation schemes to provide mobile-computing and edge-computing friendly models.

\subsubsection{Mobile-Compatible Model Generation}\label{sss:mobile-compatible}
A mobile-compatible model accepts quantized \texttt{unsigned int8} inputs and generates quantized \texttt{unsigned int8} outputs.
A quantized \emph{int8\_value} representation is related to the corresponding \emph{real\_value} as follows
\begin{equation*}\label{eq:qauntization}
  real\_value = (int8\_value - zero\_point) * scale,
\end{equation*}
where \emph{zero-point} and \emph{scale} are parameters.
Prior to mobile-compatible model generation,
we process a representative dataset to estimate the value range of the data that are to be quantized, and choose
appropriate values for these parameters.

\subsubsection{Edge-TPU Compatible Model Generation}\label{sss:edgetpu-comp-model-gen}
In order to exploit the \texttt{Accelerator}{} and \texttt{Dev Board}{}, the quantized model must be converted into an \texttt{Edge-TPU-Compatible}{} model by compiling it with the Edge TPU runtime. \texttt{Edge-TPU-Compatible}{} model generation is done by using a compiler deployed with \texttt{Edge-TPU}{} firmware libraries. This compiler enables a conversion of a \texttt{Mobile-Compatible}{} model into an \texttt{Edge-TPU-Compatible}{} model.

\subsection{Inference Workflow} \label{s:inf-wf}

We describe in turn the inference workflows used when running on a CPU, \texttt{Edge-TPU}{}, and Edge GPU.
The CPU related experiments are carried out with the trained model with no quantization and the \texttt{Edge-TPU}{} and Edge-GPU experiments are carried out with the trained model with quantization.

\subsubsection{CPU Inference}\label{sss:cpu-inference-workflow}

The CPU inference workflow, shown in
\autoref{fig:cpu-inference-workflow}, uses the non-quantized model.
We feed the required inputs, non-quantized model, and noisy image of size 1$\times$1024$\times$1024$\times$3

 to the CPU-based inference API, which
returns a de-noised image with dimension 1024$\times$1024.

\begin{figure}[htbb]
  \centering
  \includegraphics[width=0.8\columnwidth]{images/new_cpu_inference_anatomy_resize_v4.pdf}
\vspace{-5ex}
  \caption{The CPU inference workflow applies the non-quantized TomoGAN direclty, with no pre- or post-processing required.}
  \label{fig:cpu-inference-workflow}
\end{figure}

\subsubsection{Edge TPU Inference}\label{sss:tpu-inference-workflow}

\noindent
The Edge TPU inference workflow, shown in
\autoref{fig:edge-tpu-inference-workflow},
applies the \texttt{Post-Quantization}{} (\ref{ss:pqt}) or \texttt{Quantization-Aware}{} (\ref{sss:qtaw-inference-model}) models to preprocessed images.
We use customized versions of the \texttt{Accelerator}{} and \texttt{Accelerator}{} \texttt{BasicEngine} inference API and \texttt{TensorflowLite} API \cite{tflite-google} for this purpose.
Each input image has shape 1$\times$1024$\times$1024$\times$3, where the dimension 3 results from grouping with each image two adjacent images,
as used in TomoGAN{} to improve output quality.
Each image is partitioned into 256 \emph{subimages} of shape 1$\times$64$\times$64$\times$3, due to \texttt{Edge-TPU-Compatible}{} restrictions;
after inference, processed subimages are buffered in memory, and once all have been processed, are stitched back together to form the de-noised output image.

\begin{figure}[htbb]
  \centering
  \includegraphics[width=\columnwidth]{images/new_full_edgetpu_inference_workflow_v5.pdf}
  \caption{The Edge TPU inference workflow partitions each input image into 256 subimages,
  processes the subimages, and stitches the
  corresponding output subimages together to create the output image.}
  \label{fig:edge-tpu-inference-workflow}
\end{figure}

\subsubsection{Edge-GPU Based Inference Workflow}\label{sss:edge-gpu-inferecne-workflow}

The Edge GPU inference workflow, shown in \autoref{fig:edge-gpu-inference-workflow}, is similar to the CPU inference workflow, except for the part of using a GPU specific quantized model.
Each input image, with shape 1$\times$1024$\times$1024$\times$3,
is passed to the Edge GPU-specific quantized model (produced with TensorRT \cite{tensorrt} from the non-quantized model),
which produces a de-noised image with shape 1024$\times$1024 as output.

\begin{figure}[htbb]
  \centering
  \includegraphics[width=\columnwidth]{images/new_gpu_inference_anatomy_v7.pdf}
  \caption{The Edge GPU inference workflow differs from the CPU inference workflow in its application of model optimization to
  the non-quantized model.}
  \label{fig:edge-gpu-inference-workflow}
\end{figure}

\subsection{Fine-Tuning Workflow}\label{s:fine-tune-workflow}

\noindent
With \texttt{Post-Quantization}{}-enabled inference, some accuracy may be lost due to model quantization.
We observed this effect in our preliminary results:
the non-quantized model produced better output than the  \texttt{Post-Quantization}{} Edge-TPU quantized model.
To improve image quality in this case, we designed a shallow convolutional neural network (referred to as the \emph{Fine-Tune network} in the rest of the paper) to be applied to the output of the quantized TomoGAN{}: see \autoref{fig:fine-tune-network}.
We use output from the \texttt{Edge-TPU-Compatible}{} model (see \S\ref{sss:edge-gpu-inferecne-workflow} and \S\ref{ss:datasets}) to train this network.
The target labels are the corresponding target images for each inferred image from the mentioned portion of the training dataset.
At the inference stage, we applied the \texttt{Edge-TPU}{} inference workflow (see \S\ref{sss:edge-gpu-inferecne-workflow}) and used its output as input to the Fine-Tune model.
We shall see in \S\ref{ss:image-quality} that this Fine-Tune network
improves image quality to match that of the images generated from the CPU inference workflow

\begin{figure}[htbp]
  \centering
  \includegraphics[width=\columnwidth]{images/new_enhance_layer_simplified_v5.pdf}
  \caption{The Fine-Tune network is applied to the output from the quantized TomoGAN to improve image quality.}
  \label{fig:fine-tune-network}
\end{figure}

\section{Experiments}\label{s:experiments}
\noindent
In order to evaluate both computing throughput and model inference performance, we conducted a set of experiments on quantized inference and enhanced the output from direct inference with a shallow Fine-Tune network.
We compared the performance and evaluated the image quality on CPU, GPU, and TPU devices individually.

\subsection{Datasets}\label{ss:datasets}
\noindent
We used two datasets for our experiments. Each dataset comprises 1024 pairs of 1024$\times$1024 images,
each pair being a noisy image and a corresponding ground-truth image, as described in Liu et al.~\cite{tomogan-anl}.
Ground truth images are obtained from normal-dose X-ray imaging and noisy images from low-dose X-ray imaging of the same sample.
We used one dataset for training and the other for testing.

\subsection{Performance Evaluation}
\noindent
We evaluated both inference performance~(i.e., throughput) on different hardware platforms and the quality of the resulting images.
For inference performance, we studied a laptop CPU (\S\ref{sss:cpu-hardware}), the \texttt{Accelerator}{} and \texttt{Dev Board}{} Edge TPU (\S\ref{sss:tpu-hardware}), and the \texttt{TX2}{} Edge GPU (\S\ref{sss:gpu-hardware}),
applying for each the workflow of \S\ref{s:inf-wf} to a series of images and
calculating the average inference latency.

\subsubsection{CPU Inference Performance Evaluation}\label{sss:cpu-hardware}
\noindent
Standard CPU-based experiments were conducted by using the non-quantized model with a personal computer comprising an Intel Core i7-6700HQ CPU@2.60GHz with 32GB RAM.
The supported operating system was Ubuntu 16.04 LTS distribution.
The non-quantized model takes an average inference time of 1.537 seconds per image:
see \texttt{i7@2.6GHz} in \autoref{fig:inference-latency}.

\subsubsection{TPU Inference Performance Evaluation}\label{sss:tpu-hardware}
\noindent
We evaluated Edge TPU performance on two platforms with different configurations:
the \texttt{Accelerator}{} with an Edge TPU coprocessor connected to the host machine (a laptop with Intel i7 CPU) via a USB 3.0 Type-C (data and power) interface,
and the \texttt{Dev Board}{} with Edge TPU coprocessor and a 64-bit ARM CPU as host.
Columns \texttt{Accelerator} and \texttt{Dev Board} of
\autoref{tb:time-breakdown-edge} provide timing breakdowns for these two devices.
The first component is the time to run the quantized TomoGAN model:
0.435 and 0.512 seconds per image for \texttt{Accelerator}{} and \texttt{Dev Board}{}, respectively.
The second component, ``Stitching,'' is due to an input image size limit of 64$\times$64  imposed by the
Edge TPU hardware and compiler that we used in this work.
Processing a single 1024$\times$1024 image thus requires processing 256 individual 64$\times$64 images,
which must then be stitched together to form the complete output image.
This stitching operation
takes an average of 0.12 and 0.049 seconds per image on the \texttt{Dev Board}{} and \texttt{Accelerator}{}, respectively.

The third component, ``Fine-Tune,'' is the quantized fine-tune network used to improve image quality to match that of the non-quantized model, as discussed in \S\ref{ss:image-quality}; this takes an average of 0.070 and 0.166 seconds per image on \texttt{Accelerator}{} and \texttt{Dev Board}{}, respectively.
We note that model compilation limitations associated with the current Edge TPU hardware and software
require us to run the quantized TomoGAN{} and Fine-Tune networks separately,
which adds extra latency for data movement between host memory and Edge TPU.
We expect to avoid this extra cost in the future by chaining TomoGAN{} and Fine-Tune to execute as one model.
(While the quantized TomoGAN{} requires 301 billion operations to process a 1024$\times$1024 image,
Fine-Tune takes only  621 million: a negligible 0.2\% of TomoGAN{}.)

\begin{table}[htpb]
\caption{Performance Breakdown on Inference in Edge Devices. TOPS refers trillion operations  per second and TFLOPS denotes trillion floating point operations per second. }
\center
\begin{tabular}{l|c|c|c}
\noalign{\hrule height 2pt}
          & \multicolumn{1}{l|}{\textbf{Accelerator}} & \multicolumn{1}{l|}{\textbf{Dev Board}} & \multicolumn{1}{l}{\textbf{Jetson Tx2}} \\\noalign{\hrule height 2pt}
Quantized TomoGAN{} (s) & \textbf{0.435} & 0.512 & 0.880 \\ \hline
Stitching (s) & \textbf{0.049} & 0.120 & - \\ \hline
Fine-Tune (s) & \textbf{0.070} & 0.166 & - \\ \hline
Total (s) & \textbf{0.554} & 0.798 & 0.880 \\ \hline
Power Consumption (w) & 2 & 2 & 7.5\\ \hline
Peak Performance & 4 TOPS & 4 TOPS & 1.3 TFLOPS\\
\noalign{\hrule height 2pt}
\end{tabular}
\label{tb:time-breakdown-edge}
\end{table}

\subsubsection{Edge GPU Inference Performance Evaluation}\label{sss:gpu-hardware}
The original TomoGAN{} can process a 1024$\times$1024 pixel image in just 44ms on a NVIDIA V100 GPU card.
As our focus here is on edge devices,
we evaluated TomoGAN performance on the \texttt{TX2}{}, which has a GPU and is designed for edge computing.
Column Jetson Tx2 in \autoref{tb:time-breakdown-edge} shows results.
We see an average inference time per image of 0.88 seconds for the \texttt{TX2}{}.
We compare in \autoref{fig:inference-latency} this time with the quantized TomoGAN Edge TPU times (not including stitching and fine tuning).

We note that in constructing the model for the \texttt{TX2}{},
we used NVIDIA's TensorRT toolkit~\cite{migacz2017nvidia-tensorrt, tensorrt} to optimize the operations of TomoGAN{}.
We also experimented with 16-bit floating point, 32-bit floating-point, and unsigned int8, and observed similar performance for each, which
we attribute to the lack of Tensor cores in the \texttt{TX2}{}'s NVIDIA Pascal architecture for accelerating multi-precision operations.

\begin{figure}[ht]
\center
\includegraphics[width=.8\columnwidth,trim=0 0.45in 0 0.1in,clip]{images/infer-cmp}
\caption{Inference time for a 1024$\times$1024 pixel image on a CPU, the two Edge TPU platforms, and \texttt{TX2}{}.
}
\label{fig:inference-latency}
\end{figure}

\subsubsection{Performance Discussion}
We find that inference is significantly faster on the \texttt{Edge-TPU}{} than on the CPU or \texttt{TX2}{},
and faster on \texttt{TX2}{} than on the CPU.
\texttt{Accelerator}{} is faster than \texttt{Dev Board}{},
because the former has a more powerful host (the laptop with i7) with better memory throughput than the latter (the 64-bit SoC ARM platform).
These performance differences may appear small, but we should remember that
a single light source experiment can generate thousands of images, each larger than 1024$\times$1024, e.g., 2560$\times$2560, and thus any acceleration is valuable.

\subsection{Image Quality Evaluation}\label{ss:image-quality}
\noindent
We used structural similarity index (SSIM)~\cite{wang2003ssim} to evaluate image quality.
We calculated this metric for images enhanced from the original TomoGAN, the quantized TomoGAN{}, and the quantized TomoGAN{} plus Fine-Tune network, with results shown in \autoref{fig:image-quality-ssim}.
We observe that SSIM for the quantized TomoGAN+Fine-Tune
is comparable to that of the original (non-quantized) TomoGAN.

\begin{figure}[ht]
\centering
\includegraphics[width=0.8\columnwidth,trim=0 0.5in 0 0,clip]{images/ssim-cmp}
\caption{SSIM image quality scores for
 original TomoGAN,
  quantized TomoGAN, and
 quantized TomoGAN+Fine-Tune, each applied to our 1024 test images.
 (The boxes show 25th to 75th percentile values, and the dashed lines indicate the mean.)
 }
\label{fig:image-quality-ssim}
\end{figure}

\section{Related Work}\label{s:related-work}
\noindent
The opportunities and challenges of edge computing have received much attention~\cite{garcia2015edge,satyanarayanan2017emergence}.
Methods have been proposed for both co-locating computing resources with sensors,
and for offloading computing from mobile devices to nearby edge computers~\cite{chen2018thriftyedge,chen2018task,chen2015efficient}.

Increasingly, researchers want to run deep neural networks on edge devices~\cite{chen2019deep,zhou2019edge,lane2015can},
leading to the need to adapt computationally expensive deep networks for resource-constrained environments.
Quantization, as discussed above, is one such approach~\cite{google-quantization,hubara2017quantized,kim2016bitwise,hubara2016binarized}.
Others include the use of neuromorphic hardware~\cite{krestinskaya2019neuromemristive},
specialized software~\cite{mobile-dnn},
the distribution of deep networks over
cloud, local computers, and edge computers~\cite{dnn-cloud-edge},
and mixed precision computations~\cite{DBLP:journals/corr/abs-1902-00460}.

Various deep networks have been developed or adapted for edge devices, including Mobilenet \cite{mobilenets}, VGG \cite{vggnet}, and Resnet~\cite{resnet}.
However, that work focuses on image classification and object detection.
In contrast, we are concerned with image translation and image-to-image mapping to provide an enhanced image.
Also, we are applying our image restoration model on edge devices, an approach that has not been discussed in the literature.

Our use of a fine-tuning network to improve image quality is an important part of our solution, allowing us to avoid the excessive training time required for the quantization-aware model. We are not aware of prior work that has used such a fine-tuning network, although it is conceptually similar to the use of gradient boosting in ensemble learning~\cite{breiman1997arcing}.

\section{Conclusion}\label{s:conclusion}
\noindent
We have reported on the adaption for edge execution of
TomoGAN, an image-denoising model based on generative adversarial networks developed for low-dose x-ray imaging.
We ported TomoGAN to the Google Coral Edge TPU devices (\texttt{Dev Board}{} and \texttt{Accelerator}{}) and NVIDIA Jetson \texttt{TX2}{} Edge GPU.
Adapting TomoGAN for the Edge TPU requires quantization.
We mitigate the resulting loss in image quality, as measured via the SSIM image quality metric,
by applying a fine-tune step after inference, with negligible computing overhead.
We find that
\texttt{Dev Board}{} and \texttt{Accelerator}{} provide 3$\times$ faster inference than a CPU, and that
\texttt{Accelerator}{} is 1.5$\times$ faster than \texttt{TX2}{}.
We conclude that edge devices can provide fast response at low cost,
enabling \emph{scientific image restoration anywhere}.

The work reported here focused on image restoration.
However, before images can be enhanced with TomoGAN{}, they must be reconstructed
from the x-ray images, for example by using filtered back projection (FBP)~\cite{kak2002principles}.
FBP is not computationally intensive: processing the images considered here using the TomoPy implementation~\cite{gursoy2014tomopy} takes about 400ms per image on a laptop with an Intel i7 CPU.
Nevertheless, for a complete edge solution, we should also run FBP on the edge device.
We will tackle that task in future work.

\section*{Acknowledgment}
\noindent
This work was supported in part by the U.S. Department of Energy, Office of Science, Advanced Scientific Computing Research, under Contract DE-AC02-06CH11357.
This research was accomplished when V. Abeykoon is an intern at Argonne National Laboratory under the supervision of Z. Liu.
We thank the JLSE management team at the Argonne Leadership Computing Facility and the Google Coral team for their assistance.

\bibliographystyle{IEEEtran}

redpajama_set_name: RedPajamaArXiv


Seamless,Lightweight And Stretchable Fabric Keep You Comfortable In Any Position.
Magic Headbands Perfect To Use As A Headband,neck Gaiter,wind Or Dust Screen,balaclava,spring Scarf Or A Helmet Liner,more Than 12 Different Dress Ways,a Good Gift For Your Friends And Family And Yourself As Well.
Rich And Interesting Patterns Give You Fun At Every Important Moment.
For Further Methords On How To Use The Headbands,please Have A Read Blow The Chart.


On Saturday, September 27, our Giant Sycamore will be one of the National Public Lands Day projects. During the morning of the 27th, we'll be moving the picnic tables, the sign board, and the hitching rails further from the tree base to allow the soil under the tree to recover to its natural state. We'll also be spreading bark mulch under the tree to speed up the soil's recuperation.
For this project, we'll have permission from the North Texas Municipal Water District (NTMWD) to use their construction road to drive our vehicles down to Wilson Creek and park there. So instead of an 8-mile hike to reach the tree, it will now be only a short ¼ mile walk.
If you can come, you'll need water, bug-spray, long pants, long-sleeves, gloves, and a bag-lunch. We'll start at 830am and hopefully be finished by noon. Duke will provide directions to the construction road entrance as you RSVP.
TTPA will bring chainsaws and some hand tools.
Directions from Highland Park trailhead – exit the trailhead and turn right on Snider Lane. Follow Snider Lane to the end, and turn right onto Winningkoff. Follow Winningkoff, through the stop sign at Blondy Jheune, and to the next stop sign. Turn left onto Orr Road. Follow Orr Road past the main entrance to the Wastewater Treatment plant, and turn right into the construction entrance (50yds past the main entrance).
Directions from US75 – exit onto Stacey Rd eastbound. Follow Stacey Rd until it ends at the light on Country Club Drive. Turn left onto Country Club and then turn right at the next light (you are now back on Stacey Rd). Follow Stacey Rd until it dead ends at a stop sign, turn right onto Orr Rd. About 1 mile south, you will reach the construction entrance to the Wastewater Treatment plant. If you reach the main entrance, you've gone 50yds to far.


We list the most relevant Cooking Classes in or near Lancaster NH. Cooking classes can also be a wonderful way to spend a monthly "date" night with your loved one. It does not matter if your cooking strong-suit is French or German, it is never too late to become finer at your forte. Classes are filling up quickly, so get registered right now!
If you are looking at cooking classes for professional development, visit our culinary schools section – A cook or any other cooking professional can acquire certification that demonstrates to an employer that he / she has achieved some level of culinary proficiency. In addition to certification, class room and hand-on instruction, one in addition needs a number of soft skills, or personal qualities, to achieve in this industry.


Leader of the Oppositional Platform for Life Party Vadim Rabinovich urged to dissolve the office of president of Ukraine during an interview on 112 Ukraine TV channel.
"If we care about Ukraine and its future, it would be ideal for the Rada to save the country in the remaining period before the parliamentary elections by eliminating the office of president," the Deputy of the Rada said.
The MP stated that no president of Ukraine has left the post with honor.
Earlier, Rabinovich had recommended holding a referendum to eliminate the office of president. In 2017, he informed that the model of parliamentary governance will be more appropriate for the country.