如何在两个角膜层之间分配重量?

时间:2019-07-28 15:08:01

标签: python tensorflow keras deep-learning conv-neural-network

如何在两个Keras层之间共享重量,例如import java.io.*; import java.util.*; class TestClass { public static void main(String[] args) { InputReader sc = new InputReader(System.in); int Q=sc.nextInt(); PriorityQueue<Integer> mn=new PriorityQueue<>(); PriorityQueue<Integer> mx=new PriorityQueue<>(Collections.reverseOrder()); int[] cnt =new int[100000+1]; for (int q = 0; q < Q; q++) { String str=sc.nextLine(); if(str.substring(0,4).equals("Push")) { int X=Integer.parseInt(str.substring(5)); ++cnt[X]; mx.add(X); mn.add(X); } else if (str.equals("Diff")) { if(mx.isEmpty()||mn.isEmpty()) out.println(-1); else { int min = mn.poll(); int max = mx.poll(); if(min==max) { --cnt[max]; } else { --cnt[min]; --cnt[max]; } mn.remove(max); mx.remove(min); out.println(max-min); } } else if (str.equals("CountHigh")) { if(mx.isEmpty()) { out.println(-1); } else { out.println(cnt[mx.peek()]); } } else { if(mn.isEmpty()) { out.println(-1); } else { out.println(cnt[mn.peek()]); } } // System.out.println(q+" "+mx+" "+mn); } out.close(); } static PrintWriter out = new PrintWriter(new BufferedOutputStream(System.out)); static int mod = 1000000000+7; static class InputReader { private final InputStream stream; private final byte[] buf = new byte[8192]; private int curChar, snumChars; private SpaceCharFilter filter; public InputReader(InputStream stream) { this.stream = stream; } public int snext() { if (snumChars == -1) throw new InputMismatchException(); if (curChar >= snumChars) { curChar = 0; try { snumChars = stream.read(buf); } catch (IOException e) { throw new InputMismatchException(); } if (snumChars <= 0) return -1; } return buf[curChar++]; } public int nextInt() { int c = snext(); while (isSpaceChar(c)) { c = snext(); } int sgn = 1; if (c == '-') { sgn = -1; c = snext(); } int res = 0; do { if (c < '0' || c > '9') throw new InputMismatchException(); res *= 10; res += c - '0'; c = snext(); } while (!isSpaceChar(c)); return res * sgn; } public long nextLong() { int c = snext(); while (isSpaceChar(c)) { c = snext(); } int sgn = 1; if (c == '-') { sgn = -1; c = snext(); } long res = 0; do { if (c < '0' || c > '9') throw new InputMismatchException(); res *= 10; res += c - '0'; c = snext(); } while (!isSpaceChar(c)); return res * sgn; } public int[] nextIntArray(int n) { int a[] = new int[n]; for (int i = 0; i < n; i++) { a[i] = nextInt(); } return a; } public String readString() { int c = snext(); while (isSpaceChar(c)) { c = snext(); } StringBuilder res = new StringBuilder(); do { res.appendCodePoint(c); c = snext(); } while (!isSpaceChar(c)); return res.toString(); } public String nextLine() { int c = snext(); while (isSpaceChar(c)) c = snext(); StringBuilder res = new StringBuilder(); do { res.appendCodePoint(c); c = snext(); } while (!isEndOfLine(c)); return res.toString(); } public double nextDouble() { return (Double.parseDouble(readString())); } public boolean isSpaceChar(int c) { if (filter != null) return filter.isSpaceChar(c); return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1; } private boolean isEndOfLine(int c) { return c == '\n' || c == '\r' || c == -1; } public interface SpaceCharFilter { public boolean isSpaceChar(int ch); } } } out1

out2

1 个答案:

答案 0 :(得分:1)

如果要在inp1inp2张量上应用相同的卷积层,则只需要先创建该层,然后在inp1和{{1}上调用它即可}:

inp2

有关更多信息,请参见Keras文档中的shared layers部分。