text:
package org.colorcoding.ibas.importexport.service.rest;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.Method;

import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;

import org.colorcoding.ibas.bobas.bo.IBusinessObject;
import org.colorcoding.ibas.bobas.common.IOperationResult;
import org.colorcoding.ibas.bobas.common.OperationResult;
import org.colorcoding.ibas.bobas.data.FileData;
import org.colorcoding.ibas.bobas.i18n.I18N;
import org.colorcoding.ibas.bobas.message.Logger;
import org.colorcoding.ibas.bobas.message.MessageLevel;
import org.colorcoding.ibas.bobas.repository.jersey.FileRepositoryService;
import org.colorcoding.ibas.bobas.serialization.ISerializer;
import org.colorcoding.ibas.bobas.serialization.ISerializerManager;
import org.colorcoding.ibas.bobas.serialization.SerializerFactory;
import org.colorcoding.ibas.importexport.MyConfiguration;
import org.colorcoding.ibas.importexport.data.DataExportInfo;
import org.colorcoding.ibas.importexport.data.DataWrapping;
import org.colorcoding.ibas.importexport.repository.BORepositoryImportExport;
import org.colorcoding.ibas.importexport.transformer.FileTransformer;
import org.colorcoding.ibas.importexport.transformer.FileTransformerSerialization;
import org.colorcoding.ibas.importexport.transformer.IFileTransformer;
import org.colorcoding.ibas.importexport.transformer.TransformerFactory;
import org.glassfish.jersey.media.multipart.FormDataBodyPart;
import org.glassfish.jersey.media.multipart.FormDataMultiPart;
import org.glassfish.jersey.media.multipart.FormDataParam;

@Path("file")
public class FileService extends FileRepositoryService {

	public final static String CONFIG_ITEM_IMPORT_WORK_FOLDER = "ImportWorkFolder";

	public FileService() {
		this.getRepository().setRepositoryFolder(
				MyConfiguration.getConfigValue(CONFIG_ITEM_IMPORT_WORK_FOLDER, MyConfiguration.getTempFolder()));
	}

	@POST
	@Path("upload")
	@Consumes(MediaType.MULTIPART_FORM_DATA)
	@Produces(MediaType.APPLICATION_JSON)
	public OperationResult<FileData> upload(FormDataMultiPart formData, @QueryParam("token") String token) {
		return super.save(formData.getField("file"), token);
	}

	@POST
	@Path("import")
	@Consumes(MediaType.MULTIPART_FORM_DATA)
	@Produces(MediaType.APPLICATION_JSON)
	public OperationResult<String> importData(FormDataMultiPart formData, @FormDataParam("update") String sUpdate,
			@QueryParam("token") String token) {
		OperationResult<String> opRslt = null;
		try {
			opRslt = new OperationResult<String>();
			// 保存文件
			OperationResult<FileData> opRsltFile = super.save(formData.getField("file"), token);
			if (opRsltFile.getError() != null) {
				throw opRsltFile.getError();
			}
			// 导入文件
			BORepositoryImportExport boRepository = new BORepositoryImportExport();
			boRepository.setUserToken(token);
			for (FileData data : opRsltFile.getResultObjects()) {
				IOperationResult<String> opRsltImport = boRepository.importData(data, Boolean.parseBoolean(sUpdate));
				if (opRsltImport.getError() != null) {
					throw opRsltImport.getError();
				}
				// 记录结果
				opRslt.addResultObjects(opRsltImport.getResultObjects());
				opRslt.addInformations(opRsltImport.getInformations());
			}
		} catch (Exception e) {
			opRslt = new OperationResult<String>(e);
		}
		return opRslt;
	}

	@POST
	@Path("parse")
	@Consumes(MediaType.MULTIPART_FORM_DATA)
	@Produces(MediaType.APPLICATION_JSON)
	public OperationResult<DataWrapping> parseData(FormDataMultiPart formData, @QueryParam("token") String token) {
		OperationResult<DataWrapping> opRslt = null;
		try {
			opRslt = new OperationResult<DataWrapping>();
			// 保存文件
			OperationResult<FileData> opRsltFile = super.save(formData.getField("file"), token);
			if (opRsltFile.getError() != null) {
				throw opRsltFile.getError();
			}
			// 解析文件
			IFileTransformer transformer;
			ISerializer<?> serializer = SerializerFactory.create().createManager().create(ISerializerManager.TYPE_JSON);
			for (FileData data : opRsltFile.getResultObjects()) {
				try {
					if (data == null || data.getOriginalName().indexOf(".") < 0) {
						throw new Exception(I18N.prop("msg_bobas_invalid_data"));
					}
					// 创建转换者
					String type = data.getOriginalName().substring(data.getOriginalName().lastIndexOf(".") + 1);
					if (type != null && type.equalsIgnoreCase("xlsm")) {
						// 带宏的excel文件,识别为普通问
						type = "xlsx";
					}
					type = String.format(FileTransformer.GROUP_TEMPLATE, type).toUpperCase();
					transformer = TransformerFactory.create().create(type);
					if (transformer instanceof FileTransformerSerialization) {
						((FileTransformerSerialization) transformer)
								.setBOFactory(BORepositoryImportExport.getBOFactory());
					}
					Logger.log(MessageLevel.DEBUG, BORepositoryImportExport.MSG_TRANSFORMER_IMPORT_DATA,
							transformer.getClass().getName());
					// 转换文件数据到业务对象
					transformer.setInputData(new File(data.getLocation()));
					transformer.transform();
					for (IBusinessObject object : transformer.getOutputData()) {
						ByteArrayOutputStream writer = new ByteArrayOutputStream();
						serializer.serialize(object, writer);
						opRslt.addResultObjects(new DataWrapping(writer.toString()));
					}
				} catch (Exception e) {
					Logger.log(e);
				}
			}
		} catch (Exception e) {
			opRslt = new OperationResult<DataWrapping>(e);
		}
		return opRslt;
	}

	protected String nameElement(String name) {
		int index = 0;
		for (char item : name.toCharArray()) {
			if (Character.isUpperCase(item)) {
				index++;
			} else {
				break;
			}
		}
		if (index > 0) {
			if (index == 1 || index == name.length()) {
				name = name.substring(0, index).toLowerCase() + name.substring(index);
			} else {
				index -= 1;
				name = name.substring(0, index).toLowerCase() + name.substring(index);
			}
		}
		return name;
	}

	@POST
	@Path("export")
	@Consumes(MediaType.MULTIPART_FORM_DATA)
	@Produces(MediaType.APPLICATION_OCTET_STREAM)
	public void exportData(FormDataMultiPart formData, @Context HttpServletResponse response,
			@QueryParam("token") String token) {
		try {
			// 获取导出的文件
			ISerializer<?> serializer = SerializerFactory.create().createManager().create("json");
			DataExportInfo info = new DataExportInfo();
			for (Method method : DataExportInfo.class.getMethods()) {
				if (method.getParameterCount() != 1) {
					continue;
				}
				String name = method.getName();
				if (name.startsWith("set")) {
					name = name.substring(3);
				} else {
					continue;
				}
				name = this.nameElement(name);
				FormDataBodyPart bodyPart = formData.getField(name);
				if (bodyPart == null) {
					continue;
				}
				Class<?> clazz = method.getParameterTypes()[0];
				Object value = null;
				if (clazz == String.class) {
					value = bodyPart.getValueAs(String.class);
				} else if (clazz == InputStream.class) {
					value = bodyPart.getValueAs(InputStream.class);
				} else {
					value = serializer.deserialize(bodyPart.getValueAs(InputStream.class), clazz);
				}
				try {
					method.invoke(info, value);
				} catch (Exception e) {
					Logger.log(e);
				}
			}
			BORepositoryImportExport boRepository = new BORepositoryImportExport();
			boRepository.setUserToken(token);
			IOperationResult<FileData> opRsltExport = boRepository.exportData(info);
			if (opRsltExport.getError() != null) {
				throw opRsltExport.getError();
			}
			FileData fileData = opRsltExport.getResultObjects().firstOrDefault();
			if (fileData != null) {
				// 数据存在,尝试转为字节数组
				// 为文件命名
				response.setHeader("Content-Disposition",
						String.format("attachment;filename=%s", fileData.getFileName()));
				// 设置内容类型
				if (info.getContentType() != null && !info.getContentType().isEmpty()) {
					response.setContentType(info.getContentType());
				} else {
					response.setContentType(MediaType.APPLICATION_OCTET_STREAM);
				}
				OutputStream os = response.getOutputStream();
				os.write(fileData.getFileBytes());
				os.flush();
			} else {
				// 无效的导出数据
				throw new WebApplicationException(500);
			}
		} catch (WebApplicationException e) {
			throw e;
		} catch (Exception e) {
			throw new WebApplicationException(e);
		}
	}
}


By using Cedar and Stones Hand and Body Wash you can rest assured you are doing your bit. No harsh chemicals going down the drain or into your cells.
HAND WASH | Camellia Sinses (Green Tea) Extract*, Zingiber Officinale (Ginger) Extract*, Barbadensis (Aloe Vera Gel)*, Coco Glucoside**, Glycerin*, Xanthan Gum**, Citric Acid**, Olive Leaf Extract*, Ginger Extract*, Gotu Kola Extract*, Lavandula Angustifolia Oil (Lavender Oil), Boswellia Carterii Oil (Frankincense Oil), Cymbopogon Martini Oil (Palmarosa Oil), Pelargonium Roseum Leaf Oil (Rose Geranium Oil), Cananga Odorata Flower Oil (Ylang Ylang Oil), Anthemis Nobilis Flower Oil (Chamomile Roman Oil).


A lovely bouquet of flowers is seen here in this French floral tapestry "Floral Cluster Beige". In this piece we see flowers in reds, peaches, whites and violets including a striped tulip, accompanied by greenery and foliage with some flowers fallen onto the table below. This floral still life art is a testament to the skills of French tapestry makers from the 17th century. This gorgeous tapestry "Floral Cluster Beige" is backed with a lining and has a tunnel for easy hanging. Note: tapestry rod and tassels, where pictured, are not included in the price.
Dimensions: W 28" x H 38"


text:
Film & Making Other History
Film & Making Other History studies the ideas informing the creation of a potential counterhegemonic cinema. With a special emphasis on the contributions of Italian Marxist Antonio Gramsci, the role of narrative in shaping history appears here as seminal to elaborating an alternative proposal in the fields of historical and biographical film practices.
This work covers a series of questions related to the historical representation of the subaltern and the usage of biographical forms for counterhegemonic purposes. Can alternative approaches to history make use of hegemonic forms for representing the subaltern without being absorbed by hegemony itself? This book rethinks the strategies that can be pursued to achieve this aim through the examination of cultural practices that have faced these inquiries before, such as Latin American testimonial literature and Third Cinema, as well as an analysis of Spike Lee's Malcolm X.
Pedregal, Alejandro
soft cover, adhesive bound
B/W illustrations
Film & Making Other History PDF
El Diseño como Libertad en práctica
Women's Black V-neck T-shirt size XL
(€15.90) €7.95/pcs
Women's Black V-neck T-shirt size M

redpajama_set_name: RedPajamaCommonCrawl


The truth about attending "corporate" events is that there needs to be a way to justify WHY you need to be there. Some reasons you can use are the amazing workshops and breakout sessions that will give you new tools and knowledge to drive the team and business forward.
But what about the connections you can make? The people you can meet who you can ask questions to later, who might have an amazing business that will save you money? And how 'bout the word-of-mouth you create when you meet someone new?
Pitching your attendance at an event and leading with networking may seem strange, but we can help.
Chef's solutions are used by members of many different teams across all verticals, and therefore, attendees of ChefConf are the people you want to meet. From C-Levels at large financial institutions to developers at small non-profits to systems admins for your favorite social media platforms, you will be in the room with the people changing their respective industries.
With the right mix from around the world, ChefConf provides attendees with the opportunity to meet and learn from others you may never have a chance to meet otherwise.
Have a big problem you need to solve? These are the people who can help. Your question, someone can answer. Your problem, someone has a solution. But you won't know until you get to ask.
And yes, we have sponsors and a trade-floor for you to peruse for that tool that might fill out your stack. You never know when that company that gives out that sweet t-shirt (I'm looking at you Datadog) will surprise you with a solution to your biggest data visualization problems. Maybe you are in need of professional services and you run into someone from Indellient that can help. Or you need help with some implementation, and you have lunch next to a new #ChefFriend from Orasi.
Brand awareness is huge in business: how can anyone buy your product if they don't know who you are. So show them. Get in the room, participate in the discussion, and bring your elevator pitch. Everyone is in marketing, and when you get in a room at ChefConf 2019 you will be able to tell everyone why your company is the best at what they do, why they should buy your product, use your solution, or pay for your service.
And that exposure to the Chef Community only happens when you are in the room.
So start the conversation with your boss/coworkers/friends/family, and start planning your trip to ChefConf! Register by 3/1 for Early Bird prices, which gets you $300 off passes and discounted workshops.
Don't forget about the learning opportunities as well!
Still need help justifying the trip? We started the conversation for you with our justification letter.
For further details and information on workshops & trip planning, visit our pricing page.
Relive the awesome-ness of ChefConfs of the past: watch videos from last year!
Matt works on the marketing team, where he helps drive programs and operations. When he isn't at the office, he loves hanging with his kids, riding his bike, and being terrible at poker.


text:
export class UrlTemplates {

    constructor(private scmUrl: string,
        private mainSiteUrl: string,
        private useNewUrls: boolean) {
    }

    get functionsUrl(): string {
        return this.useNewUrls
            ? `${this.mainSiteUrl}/admin/functions`
            : `${this.scmUrl}/api/functions`;
    }

    get proxiesJsonUrl(): string {
        return this.useNewUrls
            ? `${this.mainSiteUrl}/admin/vfs/site/wwwroot/proxies.json`
            : `${this.scmUrl}/api/vfs/site/wwwroot/proxies.json`;
    }

    getFunctionUrl(functionName: string): string {
        return this.useNewUrls
            ? `${this.mainSiteUrl}/admin/functions/${functionName}`
            : `${this.scmUrl}/api/functions/${functionName}`;
    }

    get scmSettingsUrl(): string {
        return `${this.scmUrl}/api/settings`;
    }

    getRunFunctionUrl(functionName: string): string {
        return `${this.mainSiteUrl}/admin/functions/${functionName.toLocaleLowerCase()}`;
    }

    get pingUrl(): string {
        return `${this.mainSiteUrl}/admin/host/ping`;
    }

    get hostJsonUrl(): string {
        return this.useNewUrls
            ? `${this.mainSiteUrl}/admin/vfs/home/site/wwwroot/host.json`
            : `${this.scmUrl}/api/functions/config`;
    }

    get scmTokenUrl(): string {
        return `${this.scmUrl}/api/functions/admin/token`;
    }

    get masterKeyUrl(): string {
        return `${this.mainSiteUrl}/admin/host/systemkeys/_master`;
    }

    get deprecatedKuduMasterKeyUrl(): string {
        return `${this.scmUrl}/api/functions/admin/masterKey`;
    }

    get runtimeStatusUrl(): string {
        return `${this.mainSiteUrl}/admin/host/status`;
    }

    get legacyGetHostSecretsUrl(): string {
        return `${this.scmUrl}/api/vfs/data/functions/secrets/host.json`;
    }

    get adminKeysUrl(): string {
        return `${this.mainSiteUrl}/admin/host/keys`;
    }

    getFunctionRuntimeErrorsUrl(functionName: string): string {
        return `${this.mainSiteUrl}/admin/functions/${functionName}/status`;
    }

    getFunctionLogUrl(functionName: string): string {
        return `${this.scmUrl}/api/vfs/logfiles/application/functions/function/${functionName}/`;
    }

    getFunctionKeysUrl(functionName: string): string {
        return `${this.mainSiteUrl}/admin/functions/${functionName}/keys`;
    }

    getFunctionKeyUrl(functionName: string, keyName: string): string {
        return `${this.mainSiteUrl}/admin/functions/${functionName}/keys/${keyName}`;
    }

    getAdminKeyUrl(keyName: string): string {
        return `${this.mainSiteUrl}/admin/host/keys/${keyName}`;
    }

    get syncTriggersUrl(): string {
        return `${this.scmUrl}/api/functions/synctriggers`;
    }

    get pingScmSiteUrl(): string {
        return this.scmUrl;
    }

    get systemKeysUrl(): string {
        return `${this.mainSiteUrl}/admin/host/systemkeys`;
    }

    getSystemKeyUrl(keyName: string): string {
        return `${this.mainSiteUrl}/admin/host/systemkeys/${keyName}`;
    }

    get runtimeHostExtensionsUrl(): string {
        return `${this.mainSiteUrl}/admin/host/extensions`;
    }

    getRuntimeHostExtensionsJobStatusUrl(jobId: string): string {
        return `${this.mainSiteUrl}/admin/host/extensions/jobs/${jobId}`;
    }

    get scmSiteUrl(): string {
        return this.scmUrl;
    }

    get runtimeSiteUrl(): string {
        return this.mainSiteUrl;
    }
}

redpajama_set_name: RedPajamaGithub


Food PR professionals are taking sides in the heated battle between proponents of a low-carb lifestyle and companies whose products contain carbs.
"Carbohydrate" has become a magic word in food PR. The popularity of the Atkins diet and similar programs that advocate reducing carbohydrate intake has prompted a virtual PR war of words between proponents of the low-carb lifestyle and makers of products which naturally contain carbohydrates who are seeing their sales shrink. "When companies cast aside science and public interest and do everything they can to confuse the public, that raises serious issues," says Richard Rothstein, VP of corporate communications with Atkins Nutritionals in New York City. "I'm proud to be on the right side of this. How in the world does a PR person today continue to promote products that are full of unbelievable amounts of sugar to children?" Trade groups for bread makers, orange juice producers, and pasta makers all have vowed to use PR to tell consumers why their products make sense in a normal diet. The National Bread Leadership Council has stepped up pro-bread PR. The council wants to "change the dialogue about carbohydrates," Patrick Davis, whose firm, Patrick Davis Communications, works for the council, told PRWeek in a previous interview. The Oldways Preservation & Exchange Trust, a Boston group that promotes the Mediterranean diet, earlier this year held a conference in Rome to formulate ways to answer the low-carb challenge to pasta and bread sales. Pasta maker Barilla was one sponsor of the event. The trust now is organizing seminars for doctors around the US to talk about "how carbohydrates fit into diet," says Chris Speed, manager of food and nutrition strategies at Oldways. Speed hopes to hold 12 to 15 such seminars over the next 12 months. While noting that "we don't say that Atkins is bad or Atkins is terrible," Speed does feel his PR efforts are competing for doctors' and their patients' attention. His goal for the conferences is to get doctors to reconsider telling patients the Atkins diet is right for them. "If we are to get our message out as well as [the low-carb advocates] have, we have to match their marketing prowess," he says. Doctors are key influencers on patients who ask them what they think of diets like Atkins, Speed explains. He also points to the Whole Grains Council, which held its first meeting last year, as another group taking on the low-carb forces by emphasizing the importance of whole grains in a balanced diet. Jumping on the trend While groups like Oldways and the bread council formulate their PR plans, major food and beverage firms are rushing out products with low-carb labels on them, worried that they might be missing a major marketing opportunity. But they're hedging their bets in case the low-carb craze cools. PR for products such as low-carb breads from Sara Lee and a low-carb beer from Coors talk about taste, not carb counts, in their messaging. "With Sara Lee bread, we definitely don't believe in introducing fad products," says Matt Hall, VP of communications with Sara Lee Bakery Group in St. Louis. Late last December, Sara Lee introduced Sara Lee Delightful white and wheat breads, with fewer carbs and calories than comparable existing Sara Lee offerings. The products noted their carb and calorie counts on packaging, but PR emphasized taste, Hall says. "The consumers who are buying our products are definitely mainstream," he adds. And there seems to be a lot of them. Within eight weeks of its introduction, the new wheat bread became the 12th biggest seller among branded breads, while the white offering became the 18th best seller in supermarkets. The new products are the best sellers among 40 bread brands that Sara Lee markets, Hall points out. The cacophony of PR about carbs has grown so loud that some worry the food and beverage industries could be setting themselves up for a public backlash similar to what happened when food companies rushed out low-fat products based on a sense that they were what diet-conscious shoppers wanted. Consumers bought low-fat items thinking they would help them drop pounds, but when that did not occur - likely because people were eating too many such products - consumers turned away from the approach. "I think there's the potential for that backlash" in low-carb product marketing, Hall says. Some think the answer is for regulators to define what low-carb means. Bill Layden, EVP and director of Edelman's food and nutrition practice, says unless labeling standards are established, consumers could become disenchanted with products calling themselves low-carb or reduced carbs. "If we oversimplify messages about carbohydrates, we may undermine it," he says. "I think there is a real need for better labeling." The stakes are major in the carb confrontation. A survey from Opinion Dynamics, a research company that does polling for Fox News, found 11% of Americans - 24 million people - are now on low-carb diets. Another study by Mintel, which does research on product introductions, found that more than half of Americans have either tried the Atkins diet, are on it, are cutting carb intake, or are thinking about doing it. But even in the world of consumer opinion research, there are disagreements about low-carbs. Technomic, a Chicago food-service consulting firm, says it surveyed people who eat out and found carbohydrates rank behind several other issues on a list of consumer concerns. "Consumers are most concerned about their intake of total fat, saturated fat, calories, and sugar in food-service settings," reads the release Technomic put out February 17 about its survey. Technomic estimates that 7% of the population is on a low-carb diet, not the 11% Opinion Dynamics said. The industry's response Food industry reaction to people's interest in Atkins and similar low-carb diets, such as South Beach, has been typical for an established industry, contends Ed Cafasso, SVP with Morrissey & Co., the Boston PR firm for Opinion Dynamics. "The first reaction of any established product is to try to defend its core products," he says. At the same time, firms are rolling out low-carb offerings as alternatives. "The best strategy that anyone in the industry can offer right now is to offer choice. I think there is a golden opportunity to establish trust with consumers, but any company that's caught trying to bamboozle consumers is going to pay." Emily Carlton, a PR specialist with Hilary Kaye Associates in Tustin, CA, represents a bread-store franchise that, rather than attack low-carb diets, has begun talking about the benefits of whole-grain, high-fiber breads. The client, House of Bread, has "decided to focus more on educating people on what kinds of bread are good when you're trying to lose weight," Carlton says. Signage in the chain's 12 locations in states such as California, Nevada, and Michigan discusses the nutrients a person needs and the need for a balanced diet. Amy Barr, a principal with Marr Barr Communications in Longmont, CO, works with client Rudi's Organic Bakery to promote both high- and low-carb offerings. She says the products appeal to different people, so messaging can concentrate on benefits for those groups rather than on attacking one diet or another. A nutritionist, Barr said she thinks that the low-carb trend is peaking. "Anybody who is bringing out low-carb now, they've missed the bubble," she says. Rothstein bristles at such talk. He sees a great deal of misinterpretation of the Atkins approach from detractors and notes most of his PR activity is devoted to educational initiatives explaining what Atkins really is. "As a company, we are doing a lot to communicate and continually educate on the right way to control your carbs," he says. "Unless you follow a legitimate carb program, low-carb products may not be for you." Rothstein also laments the efforts others in the food business are putting into attacking Atkins and similar diets. "We really all have a common enemy," namely the nation's obesity epidemic, he notes. "The old way has failed the American people." The question now is whether the PR being done on both sides of the issue will succeed in helping consumers make informed choices or cause consumer backlash by over-promising or under-delivering expected benefits from low-carb products.


On Dynasty Season 2 Episode 16, when a damaging article is released, Fallon seeks to get ahead of the narrative by fast-tracking a slate-cleaning memoir.
On Dynasty Season 2 Episode 15, Fallon and Sam struggle to keep a secret from bubbling to the surface but things are complicated by a mysterious stranger.
On Dynasty Season 2 Episode 13, when Culhane becomes a power player at Carrington Atlantic, Fallon goes to war, and Blake and Cristal have a surprise visitor.
On Dynasty Season 2 Episode 12, Alexis schemes to drive a wedge between Blake and Cristal, while Fallon tries to prove she's still at the top of her game.
On Dynasty Season 2 Episode 11, Fallon decides to round up her gal pals for a restorative "girls' trip" to Idaho for a ski trip but she has a hidden agenda.
In the wake of a horrific accident, Culhane desperately needs Fallon's help and protection; Blake shows no shame in using family to promote his own self-interest; Cristal is reluctant to reveal a big development.
On Dynasty Season 2 Episode 9, Fallon and Blake clash on how to best handle it when the Carringtons track down a dangerous enemy on Christmas Eve.
"A Real Instinct for the Jugular"
On Dynasty Season 2 Episode 8, Fallon asks for her mother's help with wedding planning only to realize that Alexis may have ulterior motives.


Orillia Ontario: Few would argue that the 2011 spring season has been cold, wet and windy. Even for those who love the great outdoors, it has been a challenge to get outside and have fun. However, on Saturday April 30th, under beautiful sunny skies, over 250 children took part in the 15th annual OPP Kids Day at Tudhope Park in Orillia.
On Saturday October 23rd, 2010 Canada's premier bass tournament will take place out of Couchiching Beach Park in downtown Orillia Ontario.
Book Release by Local Author: Fishes of Essex County and Surrounding Waters.
Windsor - Dr. Lynda D. Corkum, Professor of Biological Sciences at the University of Windsor, has just completed her new book titled Fishes of Essex County and Surrounding Waters.


text:
Millennials face much higher death rates than Gen-Xers
Millennials' health is declining—and that will have major implications for healthcare costs and economic growth, according to a new report.
[Photo: Camilo Jimenez/Unsplash]
By Zlati Meyer 2 minute Read
Millennials may love avocados, Fitbits, and booze-free cocktails, but that doesn't mean they're healthy.
In fact, their health is declining—and since they're the largest cohort currently in the U.S. workforce, with close to 73 million people, that will have major implications for both healthcare costs and economic growth, according to a new Moody's Analytics report prepared for the Blue Cross and Blue Shield Association, a group of 36 local Blue Cross and Blue Shield companies around the U.S.
The research, released yesterday, found millennials' physical and mental health is declining faster than that of Generation X. (For reference, they define a millennial as a person born between 1981 and 1996 and a Gen-Xer as someone born between 1965 and 1980.) The report cited conditions such as hypertension, high cholesterol, and behavioral health conditions, including major depression and hyperactivity, as increasing among millennial-aged Americans. And if there's no intervention, millennials' mortality rates could skyrocket over 40% compared to the generation immediately before them.
With free-falling health comes increased healthcare costs. The data indicated that costs could jump as much as 33% compared to Gen-Xers, when the latter were at the same life stage. Those ailments will also pinch their pocketbooks in less direct ways, due to more unemployment and slower income growth. Moody's Analytics determined that millennials could see a decrease of more than $4,500 in real per capita annual income due to health problems.
"As millennials become less healthy, they are more likely to miss work or stop working altogether," it went on. "Furthermore, even when they are working, health concerns may prevent them from being as productive as they would have been had they had the same health profile as previous generations."
The report cited other studies that determined one of the reasons for millennials' depression (along with alcohol and substance abuse): their concerns about money. "Less healthy, less wealthy" is the rhyming couplet Moody's Analytics uses.
The 32-page report said it shows "the beginnings of troubling generational health patterns that could hamper the future prosperity of millennials, and in turn the prosperity of the U.S. If the current pace of decline in millennial health continues unabated, the long-term consequences to the U.S. economy could be severe."
The report adds that the forecast increase in healthcare costs will be shouldered not just by individuals and businesses, but also by state and federal governments. Currently, the U.S. spends 17.9% of its gross domestic product on healthcare, according to the federal government's National Health Expenditure Accounts.
Nowhere else in the developed world do federal governments spend that much.
The border wall is destroying ecosystems. Biden can fix it
Everyone is blown away by Amanda Gorman: Here's what to know about the history-making inaugural poet


A robust energy transfer mechanism is found in nonlinear wave systems, which favours transfers towards modes interacting via triads with nonzero frequency mismatch, applicable in meteorology, nonlinear optics and plasma wave turbulence. We emphasise the concepts of truly dynamical degrees of freedom and triad precession. Transfer efficiency is maximal when the triads' precession frequencies resonate with the system's nonlinear frequencies, leading to a collective state of synchronised triads with strong turbulent cascades at intermediate nonlinearity. Numerical simulations confirm analytical predictions.


text:
\section{Introduction}
Convolutional neural networks~\cite{lecun1998gradient,krizhevsky2012imagenet} have achieved great success in the field of computer vision. The size of the convolution kernel determines the locally weighted range of the image or feature map, which is called the {\em local receptive field (LRF)}. In many computer vision tasks such as image classification and intensive prediction, larger LRF is generally desired to capture the dependencies between long-distance spatial positions and a wide range of context information. Simply increasing the size of the convolution kernel is not plausible because the number of parameters increases quadratically with the size.

In practice, commonly used techniques to obtain larger receptive fields include replacing a single-layer large convolution kernel with multi-layer small convolution kernels, adding pooling layers, and using dilated convolutions~\cite{holschneider1990real,yu2015multi}. Increasing the number of convolutional layers may cause vanishing gradients and make training more difficult. The pooling process often causes information loss. Dilated convolution kernels are not continuous since not all pixels in the LRF are involved in convolution calculation. The skipped pixels are regularly selected. With the same number of parameters, the larger the LRF, the more pixels are skipped, which may miss some details and cause discontinuity of information.

\begin{figure}[t]
\centering
\subfigure[]{
\includegraphics[width = 0.52\linewidth]{./LPSCFig/LPSCImg.pdf}
\label{fig:lpscimg}}
\subfigure[]{
\includegraphics[width = 0.42\linewidth]{./LPSCFig/LPSCKernel.pdf}
\label{fig:lpsckernel}}
   \caption{(a) At different locations of an image, local contextual pixels can be divided into different regions according to their relative distances and directions in the log-polar space. For each location, pixels falling in the same region are generally similar and can share the same weight. (b) The LPSC kernel. For this example, \(L_{r}=3, L_{\theta}=6, g=2\), thus there are only 18+1 parameters. The LRF can be arbitrarily large.}
\label{fig:intro}
\vskip -0.1in
\end{figure}

Moreover, conventional and dilated convolutions use regular square kernels. Each position is assigned a different weight within the LRF. All positions are equally treated regardless of the size of the kernel. However, intuitively, the correlation between neighboring pixels and the center pixel is usually higher, while the farther the pixel, the smaller the impact on the center pixel. The effects of two adjacent pixels that are far away from the center are usually similar, thus they can share the same parameter rather than be assigned different weights separately. As shown in red in Fig.~\ref{fig:lpscimg}, according to the configuration of surrounding regions, it can be inferred that the center position is located on the upper edge of the nose. Pixels in the same upper-left outer half-fan-shaped region show that the far upper left of the center point is white fur, but there is little difference in the effects of two specific fur points.

In this paper, we propose a novel {\em log-polar space convolution (LPSC)} method. The shape of the LPSC kernel is not a regular square, but an ellipse. Parameters of the kernel are not evenly distributed in the LRF, but are assigned in the log-polar coordinate space. As shown in Fig.~\ref{fig:lpsckernel}, the LPSC kernel divides the LRF into different regions, where regions become larger with the increase of the distance to the center. Pixels that fall into the same region share the same weight. In this way, LPSC can increase the LRF exponentially without increasing the number of parameters. Besides, LPSC naturally imposes a contextual structure on the local neighboring distribution.

The main contributions of this paper include: 1. We propose a new convolution method where the kernel lies in the log-polar space to capture the structured context information and greatly expand the LRF without increasing the number of parameters. 2. We propose log-polar space pooling to up-sample the feature map, by which conventional convolution can be conveniently used to achieve LPSC. 3. We apply LPSC to replace the conventional and dilated convolution in different network architectures including AlexNet, VGGNet, ResNet, DeepLabv3+, and CE-Net. We demonstrate the effectiveness of LPSC through empirical evaluations on different tasks and datasets.

\section{Related work}
\label{sec:relatedwork}
{\bf Context pooling.} Our method is highly motivated by shape context~\cite{belongie2001shape,belongie2002shape}. Centered at a reference point, all other points are divided into bins that are uniformly distributed in the log-polar space. The histogram among these bins is used as the shape context descriptor. Geometric blur~\cite{berg2001geometric} sparsely samples and aggregates a blurred signal in the log-polar space. Pyramid context~\cite{barron2013volumetric} pools log-spaced context points at multiple scales. Different from these methods, we design a kernel in the log-polar space for convolution, each region is assigned a weight to aggregate information from the bins. The bins are not necessarily uniformly distributed, but may have different ratios in different directions. We incorporate the kernel into deep neural networks

{\bf Methods to increase LRFs.} In~\cite{simonyan2014very,he2016deep}, it is found that imposing a regularization on large convolution kernels is equivalent to the superposition of multiple convolution layers with smaller kernels. Based on this observation, many state-of-the-art network architectures use multi-layer small kernels. However, deeper layers may cause vanishing gradients, making the network more difficult to train. We provide an alternative way to increase the LRF without increasing either the number of layers or the number of parameters. In cases where large input or LRF is required but very deep networks are not allowed restricted by resources, our method may be applied to construct a lightweight model.

In~\cite{holschneider1990real}, atrous (or dilated) convolution increases the LRF by inserting holes (zeros) between parameters in the kernel, where the interval is determined by a dilation rate. Dilated convolution has been applied in different tasks~\cite{dai2016r,yu2015multi,chen2017deeplab,sevilla2016optical}. In~\cite{zhang2017scale,zhang2019perspective}, scale-adaptive convolution learns adaptive dilation rate with a scale regression layer. Due to the insertion of holes, not all pixels in the LRF are used for calculating the output. In~\cite{wang2018understanding} and~\cite{wu2019tree}, this problem is alleviated by hybrid dilated convolution and Kronecker convolution that uses the Kronecker product to share parameters.

{\bf Other convolution methods.} Fractionally strided convolution~\cite{zeiler2010deconvolutional,zeiler2011adaptive} up-samples the input by padding. In~\cite{jaderberg2015spatial}, a spatial transformer transforms the regular spatial grid into a sampling grid. Active convolution~\cite{jeon2017active} learns the shape of convolution by introducing the convolution unit with position parameters. Deformable convolution~\cite{dai2017deformable} learns additional offsets to augment the sampling locations, thereby adaptively changing the LRF into a polygon. For active and deformable convolutions, the adapted LRF contains holes, and the intensity of change is not easy to control. The positions and offsets are learned through additional convolutions, which increases the parameters. Deformable kernels~\cite{gao2019deformable} resample the original kernel space and adapt it to the deformation of objects. The offsets for kernel positions also need to be learned.

Group convolutions~\cite{krizhevsky2012imagenet,zhang2017interleaved,zhang2018shufflenet} and separable convolution~\cite{chollet2017xception} do not increase the LRF of the convolution kernel. Octave convolution~\cite{chen2019drop} decomposes the feature map into high-frequency and low-frequency features. Multi-scale convolution is performed in~\cite{peng2019pod,li2020psconv}. In~\cite{ramachandran2019stand,cordonnier2019relationship}, stand-alone self-attention is used to replace convolution. The filter in the attention module also lies in a regular and square grid. In~\cite{esteves2017polar}, the polar transformer network (PTN) generates a log-polar representation of the input by differentiable sampling and interpolation techniques. The polar transform is only applied to a single predicted origin location. In contrast, LPSC performs log-polar pooling via binning and can be applied at any location.

{\bf Differences.} For dilated and other advanced convolutions, the kernel is still performed in a regular grid and all parameters are treated equally. Regardless of the distance from the center, the interval or the sharing range of a parameter is the same among different positions. In contrast, the proposed LPSC expands the LRF in the log-polar space, where near and far regions are distinguished in parameter sharing. The farther away from the center, the larger the range of parameter sharing

\section{Log-polar space convolution}

Let \({\bm X} \in \mathbb{R}^{H \times W \times C}\) be the input image or feature map, where \(H\), \(W\), and \(C\) are the height, width, and number of channels of \({\bm X}\), respectively. \({\bm W} \in \mathbb{R}^{(2M+1) \times (2N+1) \times C}\) is a conventional convolution kernel with a size of \((2M+1) \times (2N+1)\). The central parameter of \({\bm W}\) is indexed by \((0,0)\), parameters of \({\bm W}\) lie in a regular grid \(\left\{(-M,-N),(-M,-N+1),\cdots,(M-1,N),(M,N)\right\}\). The convolution operation is performed in the 2D spatial domain across the channels. For a spatial location \((i,j)\), the output of the conventional convolution is calculated as
\begin{equation}\label{eq:convolution} ({\bm X}*{\bm W})(i,j) = \sum\limits_{m=-M}^{M} \sum\limits_{n=-N}^{N} ({\bm X}(i+m,j+n){\bm W}(m,n)). \end{equation}
Parameters of the kernel are uniformly distributed in the regular grid, thus each pixel of \({\bm X}\) falling into the field is weighted by a separate parameter, i.e., all positions are equally treated. However, pixels that have different distances and directions from the center may have different impacts, e.g., pixels adjacent to the center should have larger contributions to the output. Pixels in the input image usually change gently, adjacent pixels far away from the center often have similar impacts on the center. Based on these intuitions, we design a convolution kernel with a special structure, namely {\em Log-Polar Space Convolution (LPSC)} kernel, to express a wide range of contextual configurations.

\subsection{LPSC kernel}

\begin{figure}[t]
\centering
\subfigure[]{
\includegraphics[width = 0.56\linewidth]{./LPSCFig/LogConv1.pdf}
\label{fig:lpscconv1}}
\subfigure[]{
\includegraphics[width = 0.34\linewidth]{./LPSCFig/LogConv3.pdf}
\label{fig:lpscconv2}}
   \caption{(a) The LPSC kernel is slide through the feature map. (b): The shape and inclination of the LPSC kernel can be changed.}
\label{fig:LogConv}
\vskip -0.1in
\end{figure}

As shown in Fig.~\ref{fig:lpsckernel}, the proposed LPSC kernel lies in the log-polar space and is shaped by the size \(2R+1\), the number of distance levels \(L_r\), the number of direction levels \(L_{\theta}\), and the growth rate \(g\). The LRF of the kernel is the area of the outermost circle whose radius is \(R\). It is uniformly divided into \({L_r}\times{L_{\theta}}\) regions in the log-polar space. Specifically, the log radius is uniformly divided into \(L_r\) levels, i.e.,
\begin{equation}\label{eq:logeq}log(R_{l+1}) - log(R_l) = log(R_{l}) - log(R_{l-1}) = log(g),\end{equation}
where \(R_l, l= 1,\cdots,{L_r}\) is the radius of the \(l\)-th level and the growth rate \(g\) is a hyperparameter controlling the expansion speed. When the center of the kernel is located at position \((c_h,c_w)\), all pixels of \({\bm X}\) in the range of \(\Delta = \left[c_h-R,c_h+R \right] \times \left[ c_w-R,c_w+R \right]\) are divided into \(L_r\) levels according to their relative squared distances to the center position. The position \((i,j) \in \Delta\) belongs to the \(l\)-th distance level if \(R_{l-1} \le d_{i,j} < R_l\), where \(d_{i,j} = (i-c_h)^2 + (j-c_w)^2\). From Eq. (\ref{eq:logeq}), we have \({R_l} = g^{l-1}{R_1}\). When the innermost radius \({R_1}\) is fixed, the LRF grows exponentially with the increase of \(L_r\). The LRF is determined by \(R\) which can be set arbitrarily. Given \(R_{L_r} = R^2\) and \(g\), we calculate \({R_1} = max(2, R^2/g^{L_r-1})\). We use \(R = \sqrt{R_{L_r}}\) as a hyperparameter instead of \(R_1\), which is more flexible. Since we use the squared distance, we impose a minimum value of 2 to ensure that all 8-neighborhood pixels fall into the 1-st level.

All positions in the range of \(\Delta\) are also uniformly divided into \(L_{\theta}\) levels according to their relative directions from the center. The position \((i,j)\) belongs to the \(m\)-th level if \(2{\pi}(m-1)/L_{\theta} \le {\theta}_{i,j} < 2{\pi}m/L_{\theta}\), where \({\theta}_{i,j}\) is the counterclockwise angle from the vector \((0,1)\) to the vector \((i-c_h,j-c_w)\). Combining the distance levels and the direction levels, the LRF is divided into \({L_r}\times{L_{\theta}}\) regions.

The LPSC kernel assigns a parameter to each region. All pixels of \({\bm X}\) falling into the same region share the same parameter. For the region with the \(l\)-th distance level and \(m\)-th direction level, the assigned parameter is denoted by \(w_{l,m}\). The areas of regions increase with \(l\), the farther away from the center, the larger the area, the more pixels sharing parameters. Because the center position of the kernel is important and forms the basis of regions, we assign an additional separate parameter \(w_{0,0}\) for the center pixel. A conventional kernel with a size of \((2R+1) \times (2R+1)\) has \((2R+1)^2\) parameters, while a LPSC kernel only has \({L_r}\times{L_{\theta}}+1\) parameters no matter how large \(R\) is. When \(R\) ranges from 2 to 9, a single conventional kernel has 25 to 361 parameters. In this range, it is sufficient to set \(L_r\) to 2 or 3 and set \(L_{\theta}\) to 6 or 8, so an LPSC kernel only has 13 to 25 parameters.

Let \(N_{l,m}\) denote the number of pixels falling into the region \(bin(l,m)\) with the \(l\)-th distance level and the \(m\)-th direction level. In faraway regions with large \(l\), \(N_{l,m}\) is large but the impacts of pixels in them should be weakened. Therefore, we regularize the weight \(w_{l,m}\) of each region by \(N_{l,m}\): \(w_{l,m}/N_{l,m}\). As a result, the LPSC kernel aggregates finer information from pixels nearing the center and is less sensitive to those of pixels farther away. Similar to conventional convolution, the LPSC kernel is slide along the input feature map \(X\) with a pre-defined stride to perform convolution, as shown in Fig.~\ref{fig:lpscconv1}. When the kernel is located at a spatial location \((i,j)\), the output response is calculated as
\begin{equation}\label{eq:LPSCkernel} \begin{array}{l} ({\bm X}*{\bm W})(i,j) = {{\bm W}(0,0)}{{\bm X}(i,j)} \\
{\kern 10pt} + \sum\limits_{l=1}^{L_r} \sum\limits_{n=1}^{L_{\theta}} \frac{1}{N_{l,m}} \sum\limits_{u,v \in bin(l,m)} ({\bm X}(u,v){\bm W}(l,m)) \end{array}.\end{equation}

For the LPSC kernel, the shape of its LRF is not necessarily a standard circle, but can be an oblique ellipse. As shown in Fig.~\ref{fig:lpscconv2}, two additional hyper-parameters are introduced: the initial angle \(\alpha\) and the eccentricity of the ellipse \(e\). When dividing the regions, the distances are calculated according to the squared ellipse distance and the initial angle is added to the calculated directions. In this way, the LPSC kernel can better fit objects with different rotations and scales. In our experiments, we only evaluate the standard circular LRF by setting \(\alpha = 0\) and \(e = 0\).

\subsection{LPSC via log-polar space pooling}

Due to the special structure and parameter sharing, LPSC cannot be directly performed by popular deep learning frameworks. In this subsection, we show that LPSC can be readily implemented by conventional convolutions via log-polar space pooling to utilize efficient convolution modules.

\begin{figure}[t]
\centering
\subfigure[]{
\includegraphics[width = 0.46\linewidth]{./LPSCFig/LogPool1.pdf}
\label{fig:logpool1}}
\subfigure[]{
\includegraphics[width = 0.46\linewidth]{./LPSCFig/LogPool2.pdf}
\label{fig:logpool2}}
   \caption{(a) At each position, log-polar space pooling generates a \(2{L_{r} \times {L_{\theta}}/2}\) matrix using the pre-computed mask. (b) To perform LPSC on the original input (left), log-polar pooling generates a matrix for each pixel, resulting in an upsampled map (middle), conventional convolution with kernel size and stride equaling \( (2{L_{r}, {L_{\theta}}/2}) \) is applied to this map (right).}
\label{fig:logpool}
\vskip -0.1in
\end{figure}

Given the hyper-parameters \(R\), \(L_{r}\), \(L_{\theta}\), and \(g\) of the proposed LPSC, we can pre-compute a mask matrix \({\bm I}\) to indicate the region indexes of positions. The size of the mask \({\bm I}\) is \((2R+1) \times (2R+1)\). \(1, \cdots, L_{\theta} \times L_r\) in \({\bm I}\) indicates the region index of the corresponding position. 0 indicates that the corresponding position does not fall into the LRF, since the region of the mask is the circumscribed rectangle of the LRF. The mask is slide through the input feature map \({\bm X}\) with the same stride of the LPSC convolution. As shown in Fig.~\ref{fig:logpool2}, when the mask is located at a spatial location \((i,j)\), pixels of \({\bm X}\) in the range are divided into regions indicated by the mask. All pixels in the same region are encoded into a single pixel by mean pooling. We re-arrange the pooled pixels of different regions into a matrix of \(2L_{r} \times {L_{\theta}}/2\) to preserve their relative spatial positions, as shown in Fig.~\ref{fig:logpool1}. In this way, given \(H' \times W'\) convolution locations (\(H'=H\) and \(W'=W\) if the stride is 1 with padding), the spatial size of the output map \({\bm X}_p\) after log-polar space pooling equals \(2H'{L_{r}} \times W'{L_{\theta}}/2\).

We perform conventional convolution with \(C'\) output channels on the output map \({\bm X}_p\) without padding. The size of the conventional convolution kernel is set to \( (2{L_{r}, {L_{\theta}}/2}) \) and the stride is also \( (2{L_{r}, {L_{\theta}}/2}) \). The output feature map \({\bm Y}_p\) has a size of \(H' \times W' \times C'\). This is equivalent to performing the second term in Eq. (\ref{eq:LPSCkernel}). To model the first term, we use a separate \(1 \times 1\) conventional convolution with the same \(C'\) channels on the original \({\bm X}\). The stride is the same as the log-polar space pooling. The output feature map \({\bm Y}_c\) contains the convolution responses of the center pixels. We add this separate center pixel convolution output \({\bm Y}_c\) to the contextual convolution output \({\bm Y}_p\). \({\bm Y}_c + {\bm Y}_p\) serves as the output feature map of the proposed LPSC.

\subsection{Discussions}

{\bf Complexity.} The complexity for pre-computing the mask is \(O(R^2)\) when initialing the layer. In a single layer, for a \(H \times W \times C\) input, there are \(H' W'\) positions for convolution computations. For each position, the same mask is used to divide the local window into \(L_r L_{\theta}\) regions, where the mean pooling operation is based on the pre-computed indexes in the mask. So region division by the mask does not involve multiplications or additions. Mean pooling for all regions needs \(O(R^2 C)\) additions and \(O(L_r L_{\theta} C)\) multiplications. Convolution requires \(O(L_r L_{\theta} C C')\) multiplications and additions. Therefore, the overall complexity at running time is \(O({H'}{W'}{L_r}{L_{\theta}}{C}{C'} + {H'}{W'}{R^2}C)\).

{\bf Structural benefits.} With the special log-polar structure, the LPSC kernel naturally encodes the local spatial distribution of pixels w.r.t. the center and puts more attention to those adjacent pixels. Pixels with similar relative distances and directions share the same parameter, which not only reduces the number of parameters, but also makes the filter more robust and compact. Due to the logarithm effect, when located at different objects, small objects are relatively enlarged, while large objects are relatively reduced. Therefore, LPSC is less sensitive to the size of objects.

{\bf Advantages of log-polar space pooling.} In log-polar space pooling, we use mean pooling to achieve the regularization for the weights of regions. However, other pooling methods are also allowed. For example, if sum pooling is used, it is equivalent to remove the regularization. If max pooling is used, LPSC can be viewed as a special dilated convolution with irregular and data-driven holes.

{\bf Relation with effective receptive field~\cite{luo2016understanding}.} In~\cite{luo2016understanding}, it is found that the effective receptive field only occupies a fraction of the full theoretical receptive field. Therefore, convolutions with large LRF are required. It is also found that not all pixels in the LRF contribute equally, where the impacts of pixels near the center are much larger. The LPSC kernel follows this spirit to treat pixels near the center finely and increase the LRF exponentially.

{\bf Relation with advanced convolution methods.} For the proposed LPSC, parameters distribute in the log-polar space. Most advanced convolution methods discussed in Section~\ref{sec:relatedwork} do not change the regular sampling grid and focus on different aspects with LPSC. Therefore, these advances may be propagated to LPSC as well. For example, group and separable convolution~\cite{chollet2017xception,zhang2018shufflenet} separates the channel dimension into groups and hence can be combined with the LPSC kernel in spatial dimensions. Graph convolution can also take advantage of LPSC as long as the relative distance and direction between nodes are defined.

{\bf Drawbacks.} LPSC has two main drawbacks. (1) It introduces three additional hyper-parameters: \({L_r}\), \({L_{\theta}}\), and \(g\). However, in practice, their selectable ranges are quite limited. Generally, to make the 8-neighborhoods of the center pixel have finer and non-redundant regional resolution, \({L_r}\) is set to 2 or 3, \({L_{\theta}}\) is set to 6 or 8, and \(g\) is set to 2 or 3. (2) Its implementation via log-polar space pooling incurs large memory overhead. The space complexity of the upsampled feature map \({\bm X}_p\) is \(O(H'W'{L_{r}}{L_{\theta}}C)\). For a single layer, the space complexity of LPSC is \(O(H'W'{L_{r}}{L_{\theta}}C + {L_{r}}{L_{\theta}}CC' + H'W'C')\).

\section{Experiments}
\label{sec:exp}

\subsection{Experimental setup and implementation for image classification}

For image classification, we evaluate on two datasets: CIFAR-10 and CIFAR-100~\cite{cifar}. We also report results on the ImageNet dataset in Section~\ref{sec:imagenet}. The purpose of our experiments is not to achieve state-of-the-art results on the datasets, but to evaluate the behaviors of LPSC integrated with different CNN architectures. We plug LPSC into three typical CNN architectures, including AlexNet~\cite{krizhevsky2012imagenet}, VGGNet-19~\cite{simonyan2014very}, and ResNet20~\cite{he2016deep}, by replacing a part of the conventional convolution layers. We use the Pytorch~\cite{NEURIPS2019_9015} implementation{\footnote{https://github.com/bearpaw/pytorch-classification}} of these architectures as our baseline. For the AlexNet, there are 5 convolution layers each followed by a ReLU activation layer. The sizes of the convolution kernels are \(11 \times 11\), \(5 \times 5\), \(3 \times 3\), \(3 \times 3\), and \(3 \times 3\), respectively. For the VGG19 Net, there are sixteen convolution layers. The kernel size for all convolution layers is \(3 \times 3\). For the ResNet-20, there are 9 basic blocks. Each block contains two \(3 \times 3\) convolution layers. A \(3 \times 3\) convolution layer is applied before all blocks

To make a fair comparison, all experimental setup and details including the learning rate, batch size, number of filters per layer, hyper-parameters for the optimizer (e.g., \(\gamma\), momentum, weight decay) remain exactly the same as in the baseline. We did not tune any of these setups for our LPSC. We directly compare LPSC with the reported results. The numbers of parameters are also computed on the CIFAR-10 dataset. Therefore, the differences in performances only come from the changes in convolution layers. Top-1 accuracy is used as the performance measure. Standard deviations over five random initializations are reported in the supplementary material.

\subsection{Ablation study}
\label{sec:ablationstudy}
{\bf Influence of hyper-parameters.} The proposed LPSC kernel has four hyper-parameters: the kernel size \(2R+1\), the number of distance levels \(L_{r}\), the number of direction levels \(L_{\theta}\), and the growth rate \(g\). For small kernels, since we set a minimum value 2 for the smallest distance level, the largest \(L_{r}\) can be determined by \(R^2\) and \(g\). If \(L_{r}\) is too large, no pixels will fall into regions of large distance levels. \(L_{\theta}\) can be set to 6 or 8, since in most cases there are only about 8 pixels in the smallest circle in Fig.~\ref{fig:lpsckernel}. We evaluate the influences of \(L_r\), \(L_{\theta}\), and \(g\) by replacing the large \(11 \times 11\) convolution kernels with the LPSC kernels in the first layer of AlexNet in Tab.~\ref{tab:AblationStudy}(a) and by applying LPSC kernels with different sizes in the first convolution layer before all blocks of VGGNet and ResNet in Tab.~\ref{tab:AblationStudy}(c) and (d), respectively. Increasing the values of \(L_{r}\) and \(L_{\theta}\) results in finer regions and improves the performances, but the number of parameters also increases

\begin{table}[tb]
\setlength\tabcolsep{3pt}
\begin{center}
\small
\caption{Ablation study based on (a)(b) AlexNet (c) VGGNet-19 and (d) ResNet-20.}
\label{tab:AblationStudy}
\subtable[\(11 \times 11\) LPSC kernels with different hyper-parameters are used in the first convolution layer of AlexNet.]{
\begin{tabular}{|l|cccc|}
\hline
\((L_r,L_{\theta},g)\) & (3,8,2) & (3,6,2) & (2,8,3) & (2,8,2)\\
\hline\hline
\# Params (M) & 2.45 & 2.45 & 2.45 & 2.45\\
Acc. CIFAR-10 (\%) & 77.27 & 76.83 & 76.23 & 75.95\\
Acc. CIFAR-100 (\%) & 46.35 & 45.86 & 45.07 & 44.61\\
\hline
\end{tabular}
}

\subtable[Effects of using LPSCs in different convolution layers of AlexNet. Kernel size remains the same as in the corresponding layer. \((L_r,L_{\theta},g)\) is fixed to \(3,8,2\) and \(2,6,3\) when applied to the 1st and 2nd layer, respectively.]{
\begin{tabular}{|l|ccc|}
\hline
LPSC layer & 1 & 2 & 1 + 2\\
\hline\hline
\# Params (M)  & 2.45 & 2.33 & 2.31\\
Acc. CIFAR-10 (\%) & 77.27 & {\bf 78.31} & 78.28\\
Acc. CIFAR-100 (\%) & 46.35 & 44.81 & {\bf 47.31}\\
\hline
\end{tabular}
}

\subtable[LPSCs with different sizes and hyper-parameters are used in an additionally added convolution layer before all blocks in VGGNet-19.]{
\begin{tabular}{|l|cccc|}
\hline
\(2R+1\) & 5 & 9 & 13 & 17\\
\((L_r,L_{\theta},g)\) & (2,6,3) & (2,6,3) & (2,6,3) & (3,8,4)\\
\hline\hline
\# Params (M)  & 20.08 & 20.08 & 20.08 & 20.08\\
Acc. CIFAR-10(\%) & 93.66 & {\bf 94.01} & 93.86 & 93.73\\
Acc. CIFAR-100(\%) & 72.95 & 73.13 & 73.08 & {\bf 73.37}\\
\hline
\end{tabular}
}

\subtable[Effects of using LPSCs in different layers and blocks of ResNet-20. The first two rows denote the sizes and hyper-parameters of LPSCs in the first convolution layer before all blocks. The third row denotes the sizes of LPSCs with fixed hyper-parameters (2,6,2) in all blocks. ``-'' means that no LPSCs are used in blocks. ``B'' means that two successive \(3 \times 3\) convolution layers are replaced with a single LPSC layer in the BasicBlock.]{
\begin{tabular}{|l|ccccc|}
\hline
\(2R+1\) & 5 & 9 & 13 & 5 & 13\\
\((L_r,L_{\theta},g)\) & (2,6,2) & (2,6,3) & (2,6,3) & (2,6,2) & (2,6,2)\\
\(2R+1\) for Blocks & - & - & - & 5 & 9(B)\\
\hline\hline
\# Params (M) & 0.27 & 0.27 & 0.27 & 0.39 & 0.18\\
Acc. CIFAR-10 (\%) & 91.55 & 91.67 & {\bf 92.11} & 91.82 & 89.78\\
Acc. CIFAR-100 (\%) & 67.23 & 67.19 & 66.97 & {\bf 67.98} & 65.10\\
\hline
\end{tabular}
}
\end{center}
\vskip -0.2in
\end{table}

VGGNet and ResNet use small \(3 \times 3\) kernels. To make the number of parameters comparable, we fix \((L_{r}, L_{\theta})\) to \((2,6)\) and evaluate the influence of the kernel size \(2R+1\) in Tab.~\ref{tab:AblationStudy}(c)(d). When \(2R+1\) is too small, the LRF is limited. When \(2R+1\) is too large, the regions with large distance levels may be coarse, i.e., a large amount of positions share the same weight, which may decrease the resolutions of parameters. Overall, for large kernels (\(11 \times 11\)), we can set \((L_{r}, L_{\theta}, g)\) to \((3,8,2)\). For small kernels (\(5 \times 5\)), we may fix \((L_{r}, L_{\theta}, g)\) to \((2,6,3)\)\footnote{In this case, since we set a lower bound of the first level distance, \(g=2\) and \(3\) will result in the same LPSC kernel.}.

{\bf Influence of the plugged layer.} Tab.~\ref{tab:AblationStudy}(b) and (d) show the results of using LPSC in different layers or blocks for AlexNet and ResNet-20, respectively. It seems that performing LPSC in low layers is more beneficial. This may be because pixels in high layers have merged information from large LRFs so that even adjacent pixels may have different influences on the center pixel and the weights for different positions are not suitable for sharing. Applying LPSC in low layers is conducive to increase the LRFs, filter redundant details, and back-propagate the gradients to more bottom pixels. In the last column of Tab.~\ref{tab:AblationStudy}(d), the two successive convolution layers in each block are replaced with a single LPSC layer, so the number of convolution layers is reduced by half and the number of parameters is reduced by one third, but the performances are only reduced by 2\% using half the layers with LPSC in ResNet.

\begin{table}[tb]
\setlength\tabcolsep{3pt}
\begin{center}
\small
\caption{Effects of the weight regularization and center pixel convolution based on AlexNet.}
\label{tab:RegMaxCenter}
\begin{tabular}{|l|cccc|}
\hline
Method & Sum & Max & No CenterConv & Mean\\
\hline\hline
Acc. CIFAR-10(\%) & 21.61 & 76.65 & {\bf 78.51} & 78.28\\
Acc. CIFAR-100(\%) & 5.53 & 44.63 & 47.13 & {\bf 47.31}\\
\hline
\end{tabular}
\end{center}
\vskip -0.15in
\end{table}

{\bf Effects of weight regularization.} In Tab.~\ref{tab:RegMaxCenter}, we evaluate the effects of the weight regularization in Eq. (\ref{eq:LPSCkernel}) based on AlexNet. ``Sum'' shows the results by using sum pooling instead of mean pooling in log-polar space pooling in the first two LPSC layers. This is equivalent to remove the regularization and the performances are severely degraded. This is because far regions are exponentially larger than nearer regions. If positions in all regions are treated equally, even the weight for a far region is not too large, the accumulation of less relevant distant pixels will still produce an overwhelming response. We also try max pooling. It also performs worse than mean pooling. Due to the large LRF, regions with large distance levels for many adjacent center locations will have large overlaps. Some large responses may dominant repeatedly in many regions for different center locations, which suppress other useful local information

{\bf Effects of center pixel convolution.} In the fourth column of Tab.~\ref{tab:RegMaxCenter}, we remove the center pixel convolution, i.e., the first term in Eq. (\ref{eq:LPSCkernel}). Center pixel convolution enlarges the importance of the center pixel. Contextual information itself may be sufficient for classification when there are few classes. For more complex tasks with more classes, center pixel convolution may provide complementary information.

\begin{figure}[t]
\begin{center}
\subfigure[] {
\includegraphics[width=1\linewidth]{./LPSCFig/CIFAR10_LPSC.pdf}
}
\subfigure[] {
\includegraphics[width = 1\linewidth]{./LPSCFig/CIFAR100_LPSC.pdf}
}
   \caption{Visualization of the learned circular LPSC kernels without center convolution in the first convolution layer of Alexnet on (a) the CIFAR-10 dataset and (b) the CIFAR-100 dataset.}
\label{fig:lpscker}
\end{center}
\vskip -0.15in
\end{figure}

\begin{figure}[tb]
\begin{center}
\subfigure[] {
\includegraphics[width=1\linewidth]{./LPSCFig/CIFAR10_LPSC_full.pdf}
}
\subfigure[] {
\includegraphics[width = 1\linewidth]{./LPSCFig/CIFAR100_LPSC_full.pdf}
}
   \caption{Visualization of the filled \(11 \times 11\) LPSC kernels without center convolution in the first convolution layer of Alexnet on (a) the CIFAR-10 dataset and (b) the CIFAR-100 dataset.}
\label{fig:filledlpscker}
\end{center}
\vskip -0.15in
\end{figure}

\subsection{Visualization}
{\bf Visualization of the learned LPSC kernels.} In Fig.~\ref{fig:lpscker}, we visualize the learned LPSC kernels in the first convolution layer of AlexNet on the CIFAR-10 and CIFAR-100 datasets. The LPSC kernels have a size of \(11 \times 11\), 3 distance levels, 8 direction levels, and a growth factor of 2. Different from conventional convolution kernels, in LPSC kernels, the closer to the center, the higher the regional resolution; the more outward, the larger the range for parameter sharing. We observe that the learned LPSC kernels capture some special local structures and contextual configuration. In some kernels, the weights for adjacent regions are continuous; some kernels are sensitive to specific directions, edges, colors, or local changes; in some other kernels, specific combinations of regions are highlighted. To fully utilize the space circumscribed by the LRF of the kernel, we fill four corners (positions that do not fall into the LRF) with the weights of corresponding nearest regions, respectively, as shown in Fig.~\ref{fig:filledlpscker}.

{\bf Comparison of effective receptive field (ERF):} Fig.~\ref{fig:LRFshow}(a) and (e) show the estimated RFs of SimpleVGGNet on the default example using conventional convolutions and LPSCs in the first two layers by the gradient-based RF estimation{\footnote{https://github.com/fornaxai/receptivefield}}, respectively. LPSC enlarges the estimated RFs from \(14\times 14\) to \(22 \times 22\). The normalized gradient maps w.r.t. different positions of the output for estimating the RFs using conventional convolutions and LPSCs are shown in Fig.~\ref{fig:LRFshow}(b-d) and Fig.~\ref{fig:LRFshow}(f-h), respectively. With LPSC, gradients can be back-propagated to more pixels of the input image.

\begin{figure}[t]
\centering
\subfigure[]{
\includegraphics[width = 0.23\linewidth]{./LPSCFig/OriLRF1.pdf}
\label{fig:erf1}}
\subfigure[]{
\includegraphics[width = 0.23\linewidth]{./LPSCFig/ori8.pdf}
\label{fig:erf8}}
\subfigure[]{
\includegraphics[width = 0.23\linewidth]{./LPSCFig/ori16.pdf}
\label{fig:erf16}}
\subfigure[]{
\includegraphics[width = 0.23\linewidth]{./LPSCFig/ori30.pdf}
\label{fig:erf30}}
\subfigure[]{
\includegraphics[width = 0.23\linewidth]{./LPSCFig/LRF1.pdf}
\label{fig:lpscerf1}}
\subfigure[]{
\includegraphics[width = 0.23\linewidth]{./LPSCFig/LRFGrid.pdf}
\label{fig:lpscerf8}}
\subfigure[]{
\includegraphics[width = 0.23\linewidth]{./LPSCFig/lpsc16.pdf}
\label{fig:lpscerf16}}
\subfigure[]{
\includegraphics[width = 0.23\linewidth]{./LPSCFig/lpsc30.pdf}
\label{fig:lpscerf30}}
   \caption{Estimated RFs with (a) conventional convolution and (e) LPSC. The normalized gradient map with (b-d) conventional convolution and (f-h) LPSC at different locations.}
\label{fig:LRFshow}
\end{figure}

\begin{table*}[tb]
\setlength\tabcolsep{3pt}
\begin{center}
\small
\caption{Comparison with different convolution methods based on different architectures.}
\label{tab:ComDilated}
\subtable[AlexNet]{
\begin{tabular}{|l|c|ccccc|cccc|ccc|c|}
\hline
Conv Type & Ori & \multicolumn{5}{c|}{\tabincell{c}{Dilation\\(size, dilation rate)}} & \multicolumn{4}{c|}{Deformable} & \multicolumn{3}{c|}{\tabincell{c}{Square\\(size, pool size)}} & \tabincell{c}{LPSC\\(\(size,L_r,L_{\theta},g)\)}\\
\tabincell{c}{hy.-para. L-1\\hy.-para. oth.} & - & \tabincell{c}{5,3\\-} & \tabincell{c}{7,2\\-} & \tabincell{c}{-\\3,2} & \tabincell{c}{-\\3,3} & \tabincell{c}{7,2\\3,3} &  & & & & \tabincell{c}{11,5\\-} & \tabincell{c}{-\\9,3} & \tabincell{c}{11,5\\9,3} & \tabincell{c}{11,3,8,2\\9,2,6,3}\\
Layer & - & 1 & 1 & 2 & 2 & 1,2 & 1 & 2 & 1,2 & all & 1 & 2 & 1,2 & 1,2\\
\hline\hline
\#params(M) & 2.47 & 2.45 & 2.46 & 2.28 & 2.28 & 2.26 & 2.47 & 2.55 & 3.21 & 7.04 & 2.45 & 2.28 & 2.26 & 2.31\\
CIFAR10 & 77.22 & 73.43 & 75.7 & 74.94 & 78.11 & 75.95 & 75.98 & 55.34 & 32.96 & 55.22 & 76.10 & 75.17 & 73.26 & {\bf 78.28}\\
CIFAR100 & 43.87 & 44.86 & 45.98 & 41.08 & 44.21 & 44.26 & 41.96 & 30.30 & 30.36 & 30.82 & 44.50 & 42.43 & 41.89 & {\bf 47.31}\\
\hline
\end{tabular}
}

\subtable[VGGNet-19]{
\begin{tabular}{|l|c|cccc|cccc|ccc|c|}
\hline
Conv Type & Ori & \multicolumn{4}{c|}{\tabincell{c}{Dilation\\(size, dilation rate)}} & \multicolumn{4}{c|}{Deformable} & \multicolumn{3}{c|}{\tabincell{c}{Square\\(size, pool size)}} & \tabincell{c}{LPSC\\(\(size,L_r,L_{\theta},g)\)}\\
\tabincell{c}{hy.-para. L-1+\\hy.-para. oth.} & - & \tabincell{c}{-\\3,2} & \tabincell{c}{-\\3,2} & \tabincell{c}{-\\3,2} & \tabincell{c}{-\\3,2} &  & & & & \tabincell{c}{13,4\\-} & \tabincell{c}{9,3\\-} & \tabincell{c}{9,3\\5,3} & \tabincell{c}{9,2,6,3\\-}\\
Block & - & 1 & 2 & 1,2 & 1,2,3 & 1+ & 1+,1 & 1+,1,2 & 1+,all & 1+ & 1+ & 1+,1 & 1+\\
\hline\hline
\#params(M) & 20.04 & 20.04 & 20.04 & 20.04 & 20.04 & 20.04 & 20.11 & 20.48 & 58.53 & 20.04 & 20.04 & 20.04 & 20.08\\
CIFAR10 & 93.34 & 91.53 & 91.97 & 89.61 & 89.56 & 92.53 & 70.37 & 90.64 & 90.02 & 87.42 & 90.01 & 89.4 & {\bf 94.01}\\
CIFAR100 & 71.95 & 68.46 & 69.30 & 63.75 & 63.83 & 69.32 & 37.50 & 64.37 & 61.26 & 62.51 & 66.64 & 65.79 & {\bf 73.13}\\
\hline
\end{tabular}
}

\subtable[ResNet-20]{
\begin{tabular}{|l|c|cccc|cc|cccc|cc|}
\hline
Conv Type & Ori & \multicolumn{4}{c|}{\tabincell{c}{Dilation\\(size, dilation rate)}} & \multicolumn{2}{c|}{Deformable} & \multicolumn{4}{c|}{\tabincell{c}{Square\\(size, pool size)}} & \multicolumn{2}{c|}{\tabincell{c}{LPSC\\(\(size,L_r,L_{\theta},g)\)}}\\
\tabincell{c}{hy.-para. L-1+\\hy.-para. oth.} & - & \tabincell{c}{3,2\\-} & \tabincell{c}{3,3\\-} & \tabincell{c}{5,2\\-} & \tabincell{c}{3,2\\3,2} &  &  & \tabincell{c}{13,4\\-} & \tabincell{c}{9,3\\-} & \tabincell{c}{9,3\\5,3} & \tabincell{c}{9,3\\5,3} & \tabincell{c}{13,2,6,3\\-} & \tabincell{c}{5,2,6,2\\5,2,6,2}\\
Block & Ori & 1+ & 1+ & 1+ & 1+,1,2,3 & 1+ & 1,2,3 & 1+ & 1+ & 1+,1 & 1+,1,2 & 1+ & 1+,all\\
\hline\hline
\#params(M) & 0.27 & 0.27 & 0.27 & 0.27 & 0.27 & 0.27 & 0.78 & 0.27 & 0.27 & 0.27 & 0.28 & 0.27 & 0.39\\
CIFAR-10 & 91.96 & 91.39 & 91.77 & 91.33 & 86.09 & 90.27 & 46.57 & 88.09 & 89.84 & 88.43 & 87.19 & {\bf 92.11} & 91.82\\
CIFAR-100 & 67.83 & 66.95 & 67.58 & 67.08 & 59.26 & 65.44 & 13.45 & 61.43 & 63.54 & 62.05 & 60.37 & 66.97 & {\bf 67.98}\\
\hline
\end{tabular}
}
\end{center}
\vskip -0.15in
\end{table*}

\subsection{Comparison with other convolution methods}

Dilated convolution~\cite{chen2017rethinking} can also exponentially increase the LRF without increasing the number of parameters. Deformable convolution~\cite{dai2017deformable} adaptively adjusts the LRF by using additional parameters to infer the offsets for each position. We use the Pytorch implementation of deformable convolution{\footnote{https://github.com/oeway/pytorch-deform-conv}} in our experiments. Different from LPSC where regions are divided in the log-polar space, we can also averagely divide the kernel into different square regions, e.g., a \(9 \times 9\) kernel can be divided into \(3 \times 3\) regions with a size of \(3\times3\). All positions in the same square region share the same parameter. We denote this alternative convolution method by {\em square convolution}, which also increases LRF with fewer parameters. Similarly, they can also be used to replace conventional convolution at different layers in different architectures.

In Tab.~\ref{tab:ComDilated}, we compare LPSC with conventional convolution, dilation convolution, deformable convolution, and square convolution in the three architectures, respectively. For dilation convolution, square convolution, and LPSC, the second and third rows show the hyper-parameters of the corresponding kernels in the first convolution layer and in other layers or blocks, respectively. ``Size'' indicates the kernel size. For VGGNet and ResNet, ``1+'' indicates the first convolution layer before all blocks. The fourth row indicates the indexes of layers or blocks in which conventional convolution is replaced by the corresponding convolution.

The second columns show the results of the three original architectures. With fewer or comparable parameters, LPSC outperforms conventional convolution in AlexNet and VGGNet, and obtains comparable results in ResNet.

The third column blocks show the results of dilated convolution with different hyper-parameters in different layers. The hyper-parameters, including the kernel size and the dilation rate, are set to keep the total number of parameters and the LRF comparable to conventional convolution and LPSC. In AlexNet and VGGNet, LPSC outperforms dilated convolution with different hyper-parameters significantly. This shows the effectiveness of spatial structure and parameter sharing in LSPC. Applying dilated convolution in higher layers also leads to worse performances, which further verifies our analysis in Sec.~\ref{sec:ablationstudy}, but LPSC outperforms dilated convolution. When only used in the first layer of ResNet, sometimes dilated convolution achieves slightly better results than LPSC. The reason may be that ResNet can stack deeper layers with residual connections and hence achieve large LRF using multi-layer small regular kernels, which eases the need for large LRF in lower layers. Moreover, the non-uniform distribution of parameters in LPSC may cause information dispersion and over-smoothing, therefore it is more difficult to model residuals.

Deformable convolution introduces additional parameters. When applied to all blocks of VGGNet or ResNet, the parameters are more than doubled. Deformable convolution causes performance degradation of different architectures. LPSC also outperforms the average square convolution with different hyper-parameters. This indicates that the spatial structure designed in log-polar space can better capture the contextual information.

{\bf Comparison of FLOPs.}  On the CIFAR10 dataset with AlexNet, the FLOPs (recorded by the fvcore toolbox{\footnote{https://github.com/facebookresearch/fvcore}}) of conventional convolution, dilated convolution, deformable convolution, squared convolution, and LPSC are 14.95M, 24.71M, 15.12M, 13.77M, and 11.42M, respectively. LPSC has much lower FLOPs than other convolution methods.

{\bf Standard deviations.} We train the AlexNet, VGGNet-19, and ResNet-20 with conventional convolution, dilation convolution, and LPSC five times by using different random seeds for initialization, respectively, and compare the average accuracies and standard deviations. ``Mean accuracy (standard deviation)'' results are reported in Table~\ref{tab:std}. We use LPSC in the first two convolution layers for AlexNet (the last column in Table~\ref{tab:ComDilated}(a)), in the added first convolution before all blocks for VGGNet-19 (the last column in Table~\ref{tab:ComDilated}(b)), and in the first convolution layer before all residual blocks for ResNet-20 (the penultimate column in Table~\ref{tab:ComDilated}(c)). Hyper-parameters of the LPSC kernels in different layers and networks are the same as in the corresponding columns of Table~\ref{tab:ComDilated}, respectively. For dilation convolution, we replace the conventional convolutions with dilation convolution in the same layers in the three architectures, respectively, where the kernel size and dilation rates are set so that the LRF and number of parameters are comparable with LPSC. Specifically, for AlexNet, the kernel size and dilation rate are set to 5 and 2 in the first convolution layer, respectively, and 4 and 2 in the second convolution layer, respectively. For VGGNet-19, the kernel size and dilation rate are set to 4 and 2 in the added first convolution layer before all blocks, respectively. For ResNet-20, the kernel size and dilation rate are set to 4 and 3 in the first convolution layer before all residual blocks, respectively. From Table~\ref{tab:std}, we observe that LPSC outperforms dilation convolutions with comparable LRF and parameters. The standard deviations for LPSC are limited, which shows that LPSC is not particularly sensitive to initializations. In some cases, the worst results also exceed those of the original networks with conventional convolutions and dilation convolutions by a margin.

\begin{table}[tb]
\setlength\tabcolsep{3pt}
\begin{center}
\small
\caption{Comparison of different convolution methods on average accuracy and standard deviation.}
\label{tab:std}
\subtable[AlexNet]{
\begin{tabular}{|l|ccc|}
\hline
Convolution & Ori & Dilation & LPSC\\
\hline\hline
\# Params (M) & 2.47 & 2.34 & 2.31\\
Acc. CIFAR-10 (\%) & 77.43 (0.25) & 75.42 (0.06) & {\bf 78.44} (0.12)\\
Acc. CIFAR-100 (\%) & 43.98 (0.43) & 44.43 (0.10) & {\bf 47.43} (0.20)\\
\hline
\end{tabular}
}

\subtable[VGGNet-19]{
\begin{tabular}{|l|ccc|}
\hline
Convolution & Ori & Dilation & LPSC\\
\hline\hline
\# Params (M) & 20.04 & 20.08 & 20.08\\
Acc. CIFAR-10 (\%) & 93.54 (0.06) & 93.46 (0.14) & {\bf 93.92} (0.06)\\
Acc. CIFAR-100 (\%) & 72.41 (0.17) & 73.03 (0.34) & {\bf 73.13} (0.12)\\
\hline
\end{tabular}
}

\subtable[ResNet-20]{
\begin{tabular}{|l|ccc|}
\hline
Convolution & Ori & Dilation & LPSC\\
\hline\hline
\# Params (M) & 0.27 & 0.27 & 0.27\\
Acc. CIFAR-10 (\%) & 91.66 (0.13) & 91.44 (0.10) & {\bf 91.81} (0.21)\\
Acc. CIFAR-100 (\%) & 67.56 (0.27) & 66.90 (0.25) & {\bf 67.63} (0.27)\\
\hline
\end{tabular}
}
\end{center}
\end{table}

\subsection{Results on the ImageNet dataset}
\label{sec:imagenet}
ImageNet~\cite{russakovsky2015imagenet} contains 1.28 million training images and 50k validation images from 1000 classes. We again use the Pytorch implementation{\footnote{https://github.com/bearpaw/pytorch-classification}} of ResNet-18 as the baseline. We replace conventional convolution with LPSC in the first convolution layer before all blocks of ResNet-18. Due to the limitation of computing resources, we reduced the batch size and learning rate by 4 times. Other hyper-parameters remain the same and we compare with the reported results in Tab.~\ref{tab:imagenet}. LPSC slightly improves both top-1 and top-5 accuracies of ResNet-18 on this large-scale dataset.

\begin{table}[tb]
\begin{center}
\small
\caption{Results on the ImageNet dataset.}
\label{tab:imagenet}
\begin{tabular}{|l|cc|}
\hline
Model & \tabincell{c}{ResNet-18} & \tabincell{c}{ResNet-18-\\LPSC}\\
\hline\hline
\#params(M) & 11.69 & 11.69\\
Top-1 Acc (\%) & 69.91 & {\bf 70.09}\\
Top-5 Acc (\%) & 89.22 & {\bf 89.26}\\
\hline
\end{tabular}
\end{center}
\vskip -0.2in
\end{table}

\subsection{Segmentation on PASCAL and medical images}
LPSC can also be applied to other vision tasks. On the PASCAL VOC 2012 dataset~\cite{everingham2010pascal,everingham2015pascal} for general image semantic segmentation, we adopt the Pytorch implementation\footnote{https://github.com/VainF/DeepLabV3Plus-Pytorch} of DeepLabv3+~\cite{chen2018encoder} with the MobileNet~\cite{howard2017mobilenets} backbone as the baseline. The training set is augmented by extra annotations provided in~\cite{hariharan2011semantic}. Overall accuracy (oAcc), mean accuracy (mAcc), freqw accuracy (fAcc), and mean IoU (mIoU) on the validation set are evaluated. In DeepLabv3+, the atrous spatial pyramid pooling (ASPP) module probes multi-scale features by applying atrous/dilated convolutions with three different rates. For DeepLabv3+LPSC, we replace the dilated convolution with the largest rate by LPSC in ASPP. The kernel size, \(L_r\), \(L_{\theta}\), and \(g\) of LPSC are set to 9, 2, 8, 2, respectively. Comparisons with the reported and reproduced results are shown in Tab.~\ref{tab:voc2012}. LPSC improves DeepLabv3+ by a margin of 1.1\% on mIoU. All hyper-parameters and setups such as the learning rate, batch size, etc, remain the same, so the performance gains are only attributed to the proposed LPSC.

\begin{table}[tb]
\begin{center}
\small
\caption{Results on the VOC 2012 dataset. ``-'' means that the results are not reported. ``\(^{*}\)'' indicates our reproduced results.}
\label{tab:voc2012}
\begin{tabular}{|l|cccc|}
\hline
Method & oAcc & mAcc & fAcc & mIoU\\
\hline\hline
DeepLabv3 & - & - & - & 0.701\\
DeepLabv3+ & - & - & - & 0.711\\
DeepLabv3+\(^{*}\) & 0.9230 & 0.8332 & 0.8652 & 0.7144\\
DeepLabv3+LPSC & {\bf 0.9273} & {\bf 0.8388} & {\bf 0.8714} & {\bf 0.7260}\\
\hline
\end{tabular}
\end{center}
\vskip -0.2in
\end{table}

On the DRIVE dataset~\cite{staal2004ridge} for retinal vessel detection, we adopt CE-Net~\cite{gu2019net} as the baseline. Sensitivity (Sen), accuracy (Acc), and AUC are evaluated on the test set. The dense atrous convolution (DAC) block of CE-Net uses four cascade branches with increasing numbers of dilated convolutions. For CE-Net-LPSC-1, we replace the dilated convolutions with rates of 3 and 5 by LPSCs with sizes of 5 and 11 in DAC, respectively, so that LPSCs have the same LRFs with dilated convolutions. \(L_r\), \(L_{\theta}\), and \(g\) of LPSCs are set to 2, 6, 3, respectively. For CE-Net-LPSC-2, we increase the kernel sizes of LPSCs to 9 and 15, respectively, to further increase LRFs. We accordingly use more parameters by setting \(L_r\), \(L_{\theta}\), and \(g\) to 3, 8, 1.5, respectively. Other hyper-parameters remain the same\footnote{https://github.com/Guzaiwang/CE-Net}. We run our models ten times and report the average performances. Comparisons with the reported results are shown in Tab.~\ref{tab:cenet}. Our LPSC achieves good generalization performances on medical image segmentation with limited training samples.

\begin{table}[tb]
\begin{center}
\small
\caption{Results on the DRIVE dataset~\cite{staal2004ridge}.}
\label{tab:cenet}
\begin{tabular}{|l|ccc|}
\hline
Method & Sen & Acc & AUC\\
\hline\hline
HED~\cite{xie2015holistically} & 0.7364 & 0.9434 & 0.9723\\
Azzopardi et al.~\cite{azzopardi2015trainable} & 0.7655 & 0.9442 & 0.9614\\
Zhao et al.~\cite{zhao2015automated} & 0.7420 & 0.9540 & 0.8620\\
U-Net~\cite{ronneberger2015u} & 0.7537 & 0.9531 & 0.9601\\
Deep Vessel~\cite{fu2016deepvessel} & 0.7603 & 0.9523 & 0.9752\\
CE-Net~\cite{gu2019net} & 0.8309 & 0.9545 & 0.9779\\
CE-Net-LPSC-1 & 0.8300 & {\bf 0.9552} & 0.9782\\
CE-Net-LPSC-2 & {\bf 0.8312} & 0.9548 & {\bf 0.9784}\\
\hline
\end{tabular}
\end{center}
\vskip -0.2in
\end{table}

\section{Conclusion}

In this paper, we have presented LPSC that naturally encodes the local contextual structures. LPSC distinguishes regions with different distance levels and direction levels, reduces the resolution of remote regions, and reduces the number of parameters by weight sharing for pixels in the same region. The LRF of LPSC increases exponentially with the number of distance levels. We impose a regularization on the parameters and implement LPSC with conventional convolutions by log-polar space pooling and separable center pixel convolution. We analyze the interests and drawbacks of LPSC from different aspects. We empirically show the effectiveness of the proposed LPSC on five datasets for classification and segmentation tasks.

{\small
\bibliographystyle{ieee_fullname}

redpajama_set_name: RedPajamaArXiv


text:
TROLLFEST STREAMS RARE TRACK FOR FANS
Posted: March 30, 2012 in OFFICIAL PRESS RELEASES, TROLLFEST
Norway's TROLLFEST, a band known for using an eclectic, and somewhat unusual instruments, to create what it calls "True Norwegian Balkan Metal" is streaming a track dating back to the early days of the band's existence, but which has never been released, although fans familiar with the TROLLFEST's exuberant live appearances may have heard the track before. The band's decision to make the track available a few months before the release of their fifth full-length album is best summed up by the close, and very interactive relationship TrollfesT has developed with its fans over the years: "While we were in the studio recording our new album we wanted to do something for all our fans while they wait for the release of "Brumlebassen". One of the songs that often features in our live set is "Skogsfest", which happens to be the third song we ever wrote, and was a part of an early TrollfesT promo that was never released. We know that this is a popular song with the audience at our shows, so we came up with the idea of re-recording it, and uploading it so that everyone can listen to it (it will not appear on the new album). And that's exactly what we did! So if you're coming to see us (and raise a few glasses together) on the KORPIKLAANI tour you may hear it then. But if you're not, then you're not going to miss out, because here it is – from us, to you". "Skogsfest" can be heard below
TROLLFEST have an extremely full schedule of live appearances and tours during 2012, including a tour with KORPIKLAANI in April, MetalFest in Austria, Germany and Switzerland in July, MetalCamp in August and the Heidenfest tour in October and November. Kicking off their live schedule in inimitable TROLLFEST style the band will bring a special show to Norway's Inferno Festival when they hit the Rockefeller stage on the 5th April. The show goes under the name of "TrollfesT & The Devil's Dangleberries Inferno Balkan Madness" and according to the band they will be joined on stage by "a group of slightly dodgy individuals known as "The Devil's Dangleberries" who will be in charge of all the Balkan madness that will be unleashed. The Devil's Dangleberries incidentally is the name we first thought of calling ourselves when we started out and before we decided on TROLLFEST". The "good friends and superb musicians" who form the Devil's Dangleberries consist of Per Olav Wiik (TROLLFEST, UNTIME) on Bouzouki, Morten Müller (DEAD TROOPER) on Bouzouki, Birger Larsen (GROTESQUE HYSTERECTOMY) on Acoustic Guitar, Harald Odland (SJU) on Acoustic Guitar and Jon Eirik Bokn (DEAD TROOPER, ZEROZONIC) on Percussion.
"Brumlebassen" itself is set for release on NoiseArt Records in the summer, and more information about TROLLFEST can be found at http://www.trollfest.com
Below you can see the official video for the track "Karve" from the album "En Kvest For Den Hellige Gral"
Web Site: http://www.trollfest.com
MySpace: http://www.myspace.com/trollfest
Facebook: http://www.facebook.com/trollfestofficial
ReverbNation: http://www.reverbnation.com/trollfest
SoundCloud: http://soundcloud.com/trollfest
WebShop: http://trollfest.bigcartel.com/
DARK ESSENCE RECORDS SIGNS POST METALLERS KRAKOW
BETHLEHEM TO CO-HEADLINE EUROPEAN TOUR WITH SECRETS OF THE MOON


text:
Q: Give group write permission to newly created files inside chmod -R g+s folder I have a folder and I have set GID on it like this:
chmod -R g+s

I also set r/w perms like this:
chmod -R 2774

But the problem is that newly created files inside this folder do not keep 2774 permissions so the GID is useless for me because I need write permissions for the group as well.
The problem is:
I have an application, that is running under certain user, and than there is couple of admins, who might edit (or upload new) application's files, but when they do edit/upload them, the application does not have write access to them. Is there any way how to make sure that all newly created or edited files inside 1 folder will always keep 2774 permissions ?

A: You can have a umask problem. When a user application sets the access flags on a file, the flags given by the application are restricted by the user's umask. For instance most applications set universal access to files they create, but the usual user's umask resets the group-write and others-write flags. So you would have to set a more permissive umask for the admin ids.

redpajama_set_name: RedPajamaStackExchange